Φύλο PDF Αρχεία, Απόσπασμα κειμένου & Εικόνες μέσω Δωρεάν Βιβλιοθήκη Python

Το Free Python API επιτρέπει την επεξεργασία και την απόδοση PDF Αρχείων, την εξαγωγή κειμένου και εικόνων, την επεξεργασία PDF σελίδων, τη συγχώνευση / το split & τη μετατροπή PDFs με ευκολία.

Το Python API είναι ένας ελαφρύς ανοιχτός κώδικας που προσθέτει τις συνδέσεις Python και την αφαίρεση σε PDF. Το API είναι μικρό σε μέγεθος, αλλά πολύ γρήγορο και παρέχει υποστηρίζει μια σειρά από δημοφιλείς μορφές εγγράφων, συμπεριλαμβανομένων PDF, XPS, OpenXPS, CB, PUB, και FB2 (eBooks) μορφές, καθώς και περίπου 10 δημοφιλείς μορφές εικόνας. Το PyMuPD είναι πολύ αξιόπιστο και είναι γνωστό για την κορυφαία ικανότητα απόδοσης του. Καθώς η βιβλιοθήκη είναι πολύ ελαφρύ βάρος το καθιστά μια εξαιρετική επιλογή για πλατφόρμες όπου οι πόροι είναι συνήθως περιορισμένοι, όπως τα smartphones.

Υπάρχουν πολλές βασικές και προηγμένες λειτουργίες που υποστηρίζονται από το PyMuPDF API για απόδοση και μετατροπές εγγράφων PDF, όπως η μετατροπή PDF σε PNG, η πρόσβαση και η προβολή μεταδεδομένων, η εργασία με περιγράμματα, η απόδοση μιας σελίδας σε εικόνα ράστερ ή διανυσματική (SVG), κείμενο PDF Αναζήτηση υποστήριξης, εξαγωγή κειμένου από σελίδα PDF, εξαγωγή εικόνων από PDF, εμφάνιση της εικόνας σε GUI, τροποποίηση σελίδας PDF, δημιουργία νέων σελίδων PDF, διαγραφή ανεπιθύμητων σελίδων PDF, ενσωμάτωση δεδομένων και ούτω καθεξής. Το PyMuPDF έχει συμπεριλάβει υποστήριξη για πολλές πλατφόρμες, όπως Mac, Linux και Windows.

Previous Next

Ξεκίνησε με PymuPDF

Το PyMuPDF μπορεί να εγκατασταθεί χρησιμοποιώντας pip, οι ακόλουθες εντολές θα εγκατασταθούν από έναν τροχό Python εάν είναι διαθέσιμο για την πλατφόρμα σας.

Εγκατάσταση PyMuPDF μέσω pip

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

Κλωνοποίηση PyMuPDF μέσω git Repository

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

Είναι επίσης δυνατό να το εγκαταστήσετε χειροκίνητα. κατεβάστε τα αρχεία τελευταίας έκδοσης απευθείας από το αποθετήριο GitHub.

Αναζήτηση κειμένου σε PDF αρχεία μέσω Python

PDF είναι μια από τις αγαπημένες μορφές αρχείων του κόσμου για την κοινή χρήση εγγράφων σε όλο το διαδίκτυο, επειδή διατηρεί όλα τα μορφοποίηση κειμένου και γραφικά μέσα σε αυτό. Αλλά δεν είναι εύκολο να αναζητήσετε κείμενο μέσα σε αυτά τα αρχεία σε σύγκριση με άλλα έγγραφα. Η δωρεάν βιβλιοθήκη PyMuPDF επιτρέπει στους προγραμματιστές λογισμικού να προσθέτουν δυνατότητες αναζήτησης κειμένου μέσα στις εφαρμογές τους Python. Επιτρέπει την αναζήτηση που υπάρχει στη σελίδα μια συγκεκριμένη συμβολοσειρά κειμένου.

Αναζήτηση που εμφανίζεται στο PDF Page Text String μέσω Python

areas = page.search_for("mupdf") 

Εκτέλεση PDF κειμένου και εικόνων μέσω Python API

Η βιβλιοθήκη του ανοιχτού κώδικα YouPDF περιλαμβάνει πολλά σημαντικά χαρακτηριστικά για τη συνεργασία με PDF κείμενα και εικόνες. Η βιβλιοθήκη έχει προσφέρει διάφορες λειτουργίες για την εξαγωγή κειμένου καθώς και εικόνες από PDF έγγραφα. Από προεπιλογή, επιτρέπει την εξαγωγή απλού κειμένου με διαλείμματα γραμμής. Χωρίς μορφοποίηση, χωρίς λεπτομέρειες θέσης κειμένου, χωρίς εικόνες. Επιπλέον, υποστηρίζει τη δημιουργία μιας λίστας μπλοκ κειμένου, δημιουργώντας μια λίστα λέξεων, δημιουργώντας μια πλήρη οπτική έκδοση της σελίδας, συμπεριλαμβανομένων των εικόνων και πολλά άλλα.

Πώς να εξάγετε κείμενο από το PDF μέσω 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 ) )

Ενωθείτε και χωρίστε PDF έγγραφα στην Python

Ο συνδυασμός διαφορετικών PDF αρχείων είναι ένα πολύ χρήσιμο χαρακτηριστικό που δίνει στους χρήστες τη δυνατότητα να έχουν ένα PDF αντί να έχουν δώδεκα ξεχωριστά PDFs. Η βιβλιοθήκη YouPDF παρέχει στους προγραμματιστές τη δυνατότητα συγχώνευσης διαφορετικών αρχείων ή αντιγράφων σελίδων μεταξύ διαφορετικών PDF εγγράφων με ευκολία. Επίσης, δίνει τη δυνατότητα στους χρήστες να χωρίσουν μεγάλα PDF έγγραφα σε μικρότερα αρχεία με μόνο μερικές γραμμές κώδικα Python. Είναι επίσης δυνατό να επιλέξετε ορισμένες συγκεκριμένες σελίδες ενός εγγράφου PDF και να δημιουργήσετε ένα νέο έγγραφο από αυτό.

Δημιουργία νέου εγγράφου από τις πρώτες και τις τελευταίες 10 σελίδες

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")

Διαβάστε και Εξαγωγή PDF Μεταδεδομένων σε CSV μέσω Python

Η βιβλιοθήκη YouPDF παρέχει πλήρη λειτουργικότητα για την πρόσβαση και την ανάγνωση μεταδεδομένων PDF αρχείων χωρίς εξωτερικές εξαρτήσεις. Υποστηρίζει διάφορους τύπους κλειδιών μεταδεδομένων όπως η ημερομηνία δημιουργίας, ο συγγραφέας, ο τίτλος, η εφαρμογή του δημιουργού, οποιοδήποτε θέμα, η μέθοδος κρυπτογράφησης, η μορφή αρχείου και ούτω καθεξής. Είναι επίσης δυνατή η εξαγωγή μεταδεδομένων σε CSV μορφή.

 

Εξαγωγή PDF Μεταδεδομένων σε CSV μέσω 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()
 Ελληνικά