Rindreáil Comhaid PDF, Sliocht Téacs & Íomhánna trí Leabharlann Python In Aisce
Ceadaíonn API Python saor in aisce comhaid PDF a chur in eagar agus a sholáthar; sliocht téacs & íomhánna, leathanaigh PDF in eagar, chumasadh / scoilt & PDFs thiontú gan stró.
Is API Python foinse oscailte éadrom é PyMuPDF a chuireann ceangail agus astarraingtí Python le MuPDF. Tá an API beag i méid ach fós an-tapa agus tacaíonn sé le roinnt formáidí doiciméad móréilimh lena n-áirítear formáidí PDF, XPS, OpenXPS, CBZ, EPUB, agus FB2 (eBooks) chomh maith le thart ar 10 formáidí íomhá tóir a oscailt freisin, agus láimhseáil cosúil le doiciméid. Tá an PyMuPD an-iontaofa agus tá cáil air as a chumas rindreála barr. Toisc go bhfuil meáchan an-éadrom sa leabharlann is rogha iontach í d’ardáin ina mbíonn acmhainní teoranta de ghnáth, mar fhóin chliste.
Tá go leor gnéithe bunúsacha agus ardchéime ann a thacaíonn API PyMuPDF le haghaidh rindreála agus tiontuithe doiciméad PDF, mar PDF a thiontú go PNG, rochtain a fháil ar mheiteashonraí agus féachaint orthu, oibriú le breac-chuntas, leathanach a rindreáil ina íomhá raster nó veicteoir (SVG), téacs PDF Tacaíocht a chuardach, téacs a bhaint as leathanach PDF, íomhánna a bhaint as PDF, an Íomhá a thaispeáint i GUIanna, leathanach PDF a mhodhnú, leathanaigh PDF nua a chruthú, leathanaigh PDF nach dteastaíonn a scriosadh, Sonraí a Leabú agus mar sin de. Áiríodh leis an PyMuPDF tacaíocht d’ardáin iomadúla, mar Mac, Linux, agus Windows.
Tús a chur le PyMuPDF
Is féidir PyMuPDF a shuiteáil ag baint úsáide as pip, déanfaidh na horduithe seo a leanas a shuiteáil ó roth Python má tá ceann ar fáil do d'ardán.
Suiteáil PyMuPDF trí pip
python -m pip install --upgrade pip
python -m pip install --upgrade pymupdf
Clón PyMuPDF trí git Stór
git clone https://github.com/pymupdf/PyMuPDF.git
Is féidir é a shuiteáil de láimh freisin; íoslódáil na comhaid eisithe is déanaí go díreach ó GitHub stór.
Cuardaigh le haghaidh Téacs i Chomhaid PDF trí Python
Tá PDF ar cheann de na formáidí comhaid is fearr ar domhan chun doiciméid a roinnt ar fud an Idirlín mar go gcoimeádann sé an fhormáidiú téacs agus na grafaicí go léir taobh istigh de. Ach níl sé éasca téacs a chuardach laistigh de na comhaid seo i gcomparáid le doiciméid eile. Ceadaíonn an leabharlann PyMuPDF saor in aisce d’fhorbróirí bogearraí cumais chuardaigh téacs a chur isteach ina bhfeidhmchláir Python. Ligeann sé cuardach a dhéanamh amach cá bhfuil teaghrán áirithe téacs ar an leathanach.
Cuardaigh Cá háit ar an Leathanach PDF Is cosúil Teaghrán Téacs trí Python
areas = page.search_for("mupdf")
Téacs agus Íomhánna PDF a Bhaint trí API Python
Tá roinnt gnéithe tábhachtacha san áireamh sa leabharlann foinse oscailte PyMuPDF chun oibriú le téacs agus íomhánna PDF. Tá feidhmeanna éagsúla curtha ar fáil ag an leabharlann chun téacs a bhaint chomh maith le híomhánna as doiciméid PDF. De réir réamhshocraithe, ceadaíonn sé gnáth-théacs a eastóscadh le briseadh líne. Gan formáidiú, gan sonraí maidir le suíomh an téacs, gan íomhánna. Thairis sin, tacaíonn sé le liosta bloic téacs a ghiniúint, liosta focal a ghiniúint, leagan amhairc iomlán den leathanach a chruthú lena n-áirítear aon íomhánna, agus go leor eile.
Conas Téacs a bhaint as PDF trí 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 ) )
Cláraigh agus Scoilt Doiciméid PDF in APP Python
Is gné an-úsáideach é comhaid PDF éagsúla a chomhcheangal a thugann an cumas d’úsáideoirí PDF amháin a bheith acu seachas dosaen PDF ar leith a bheith acu. Tugann an leabharlann PyMuPDF tras-ardán foinse oscailte saor in aisce cumhacht do ríomhchláraitheoirí bogearraí comhaid éagsúla a chumasc nó leathanaigh a chóipeáil idir dhoiciméid PDF éagsúla gan stró. Tugann sé an chumhacht d'úsáideoirí freisin doiciméid mhóra PDF a roinnt i gcomhaid níos lú gan ach cúpla líne de chód Python. Is féidir freisin roinnt leathanaigh ar leith de dhoiciméad PDF a roghnú agus doiciméad nua a chruthú as.
Cruthaíonn Doiciméad Nua Ón Chéad leathanach agus ón 10 leathanach deiridh
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éigh & Easpórtáil Meiteashonraí PDF go CSV trí Python
Chuir leabharlann foinse oscailte PyMuPDF feidhm iomlán ar fáil chun meiteashonraí comhaid PDF a rochtain agus a léamh gan aon spleáchas seachtrach. Tacaíonn sé le cineálacha éagsúla eochracha meiteashonraí cosúil le dáta cruthú, údar, teideal, feidhmchlár cruthaitheoir, aon ábhar, modh criptithe, formáid comhaid, agus mar sin de. Is féidir meiteashonraí a onnmhairiú go formáid CSV freisin.
Easpórtáil Meiteashonraí PDF go CSV trí 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()