1. Produkter
  2.   PDF
  3.   Python
  4.   PyMuPDF
 
  

Kön PDF filer, extrahera text och bilder via gratis Python Library

Gratis Python API tillåter att redigera och rendera PDF filer; extrahera text & bilder, redigera PDF sidor, slå samman / dela och konvertera PDFs med lätthet.

YouPDF är en lätt öppen källkod Python API som lägger till Python bindningar och abstraktion till MuPDF. API är liten i storlek men ändå mycket snabb och ger stöd för ett antal populära dokumentformat inklusive PDF, XPS, OpenXPS, CB, PUB och FB2 (eBooks) format samt cirka 10 populära bildformat kan också öppnas och hanteras som dokument. PyMuPD är mycket tillförlitlig och är känd för sin top rendering kapacitet. Eftersom biblioteket är mycket lätt vikt gör det ett bra val för plattformar där resurser vanligtvis är begränsade, som smartphones.

Det finns många grundläggande och avancerade funktioner som stöds av YouPDF API för PDF-dokumentrendering och omvandlingar, till exempel att konvertera PDF till NG, få tillgång till och visa metadata, arbeta med konturer, göra en sida till en raster eller vektor (SVG) bild, PDF text Söka stöd, extrahera text från PDF sida, extrahera bilder från PDF, visa bilden i Är, ändra PDF sida, skapa nya PDF sidor, ta bort oönskade PDF sidor, Embedding Data och så vidare. YouPDF har inkluderat stöd för många plattformar, till exempel Mac, Linux och Windows.

Previous Next

Komma igång med PyMuPDF

PyMuPDF kan installeras med pip, följande kommandon kommer att installeras från ett Python-hjul om man är tillgänglig för din plattform.

Installera PyMuPDF via pip

 python -m pip install --upgrade pip
python -m pip install --upgrade pymupdf
 

Klona PyMuPDF via git Repository

 git clone https://github.com/pymupdf/PyMuPDF.git 

Det är också möjligt att installera det manuellt; ladda ner de senaste versionsfilerna direkt från GitHub-förrådet.

Söka efter text i PDF filer via Python

PDF har varit ett av världens favoritfilformat för att dela dokument över internet eftersom det behåller all textformatering och grafik i den. Men det är inte lätt att söka efter text i dessa filer jämfört med andra dokument. Det fria YouPDF-biblioteket tillåter programutvecklare att lägga till textsökningsfunktioner i sina Python-program. Det gör det möjligt att söka var på sidan en viss textsträng finns.

Sök var på PDF sidan textsträng visas via Python

areas = page.search_for("mupdf") 

Utdrag PDF Text och bilder via Python API

Biblioteket YouPDF innehåller flera viktiga funktioner för att arbeta med PDF texter och bilder. Biblioteket har gett olika funktioner för utvinning av text samt bilder från PDF dokument. Som standard tillåter det utvinningen av vanlig text med radbrytningar. Ingen formatering, inga textpositionsuppgifter, inga bilder. Dessutom stöder det att generera en lista över textblock, generera en lista över ord, skapa en fullständig visuell version av sidan inklusive alla bilder och många fler.

Hur man extraherar text från PDF via Python API

from operator import itemgetter
from itertools import groupby
import fitz
doc = fitz.open( 'mydocument.pdf' )
pages = [ doc[ i ] for i in range( doc.pageCount ) ]
for page in pages:
  text_words = page.getTextWords()
  # The words should be ordered by y1 and x0
  sorted_words = SortedCollection( key = itemgetter( 3, 0 ) )
  for word in text_words:
    sorted_words.insert( word )
  # At this point you already have an ordered list. If you need to 
  # group the content by lines, use groupby with y1 as a key
  lines = groupby( sorted_words, key = itemgetter( 3 ) )

Gå med och dela upp PDF dokument i Python

Kombinera olika PDF filer är en mycket användbar funktion som ger användarna möjlighet att ha en PDF snarare än att ha ett dussin separata PDFs. Det fria och öppna källkodsbiblioteket YouPDF ger programvaruprogrammerare möjlighet att slå samman olika filer eller kopiera sidor mellan olika PDF dokument med lätthet. Det ger också användarna möjlighet att dela stora PDF dokument i mindre filer med bara ett par rader av Python-kod. Det är också möjligt att välja vissa specifika sidor i ett PDF-dokument och skapa ett nytt dokument.

Skapar nytt dokument från första och sista 10 sidor

doc2 = fitz.open()                 # new empty PDF
doc2.insert_pdf(doc1, to_page = 9)  # first 10 pages
doc2.insert_pdf(doc1, from_page = len(doc1) - 10) # last 10 pages
doc2.save("first-and-last-10.pdf")

Läs och exportera PDF metadata till CSV via Python

Den öppna källkoden YouPDF-biblioteket har gett fullständig funktionalitet för att komma åt och läsa metadata av PDF filer utan några externa beroenden. Det stöder olika typer av metadatanycklar som datum för skapande, författare, titel, skaparprogram, något ämne, krypteringsmetod, filformat och så vidare. Det är också möjligt att exportera metadata till CSV format.

 

Export PDF Metadata till CSV via Python API

import csv
import fitz
import argparse
parser = argparse.ArgumentParser(description="Enter CSV delimiter [;], CSV filename and documment filename")
parser.add_argument('-d', help='CSV delimiter [;]', default = ';')
parser.add_argument('-x', help='delete XML info [n]', default = 'n')
parser.add_argument('-csv', help='CSV filename')
parser.add_argument('-pdf', help='PDF filename')
args = parser.parse_args()
delim = args.d               # requested CSV delimiter character
assert args.csv, "missing CSV filename"
assert args.pdf, "missing PDF filename"
print "delimiter", args.d
print "xml delete", args.x
print "csv file", args.csv
print "pdf file", args.pdf
print "----------------------------------------"
doc = fitz.open(args.pdf)
oldmeta = doc.metadata
print "old metadata:"
for k,v in oldmeta.items():
    print k, ":",v
with open(args.csv) as tocfile:
    tocreader = csv.reader(tocfile, delimiter = delim)
    for row in tocreader:
        assert len(row) == 2, "each row must contain 2 entries"
        oldmeta[row[0]] = row[1]
print "----------------------------------------"
print "\nnew metadata:"
for k,v in oldmeta.items():
    print k, ":",v
doc.set_metadata(oldmeta)
doc.saveIncr()
 Svenska