Δημιουργία, Επεξεργασία & Μετατροπή PDF σε Εικόνες μέσω Python API
Δωρεάν Python API για τη δημιουργία, επεξεργασία και μετατροπή PDF σε εικόνες και αντίστροφα. Συγχωνεύστε/ χωρίστε & μετατρέψτε τα PDF σε κείμενο, περιστρέψτε/Trim/Crop PDFs.
PDFsuite είναι μια πολύ χρήσιμη βιβλιοθήκη Python που παρέχει πλήρη λειτουργικότητα που σχετίζεται με τη δημιουργία και τη διαχείριση PDF εγγράφων. Η βιβλιοθήκη είναι πολύ σταθερή και μπορεί εύκολα να τρέξει σε MacOS (από το X). Το PDFsuite είναι πολύ εύκολο στη χρήση και δίνει στους χρήστες τη δυνατότητα να διαχειρίζονται τα PDF αρχεία τους και όλα όσα θα μπορούσαν να κάνουν σε ένα PDF είναι απλά ένα κλικ μακριά.
Η βιβλιοθήκη είναι πλούσια σε χαρακτηριστικά και έχει συμπεριλάβει πολλά σημαντικά χαρακτηριστικά που σχετίζονται με PDF χειρισμό εγγράφων, όπως PDF έγγραφα μετατροπή σε PDF, συγχώνευση ή διαίρεση PDF εγγράφων, μετατροπή εικόνων σε PDF, PDF περιστροφή, Προσθήκη αριθμών σελίδων Τα σενάρια PDFsuite είναι ανοιχτού κώδικα είναι εντελώς δωρεάν για χρήση σε οποιοδήποτε είδος έργου και μπορούν να προσαρμοστούν με οποιονδήποτε τρόπο.
Ξεκίνησε με PDF
Για να εκτελέσετε το PDFsuite πρώτα πρέπει να εγκαταστήσετε το Python 3 και τη βιβλιοθήκη pyobjc, και στη συνέχεια στο Terminal παρακαλούμε πληκτρολογήστε την ακόλουθη εντολή και πατήστε Επιστροφή.
Εγκατάσταση πυόμπιτς μέσω pip
pip3 install pyobjc
Είναι επίσης δυνατή η μη αυτόματη εγκατάσταση της βιβλιοθήκης. κατεβάστε τα αρχεία τελευταίας έκδοσης απευθείας από το αποθετήριο GitHub.
Μετατροπή PDF σε εικόνες και άλλες μορφές
Η PDFsuite έχει ενσωματώσει πλήρη λειτουργικότητα για τη μετατροπή PDF εγγράφων σε διάφορες μορφές αρχείων εικόνας. Παρέχει NG, JPEG, Diff και άλλες δημοφιλείς μορφές αρχείων εικόνας. Είναι επίσης δυνατό να δημιουργηθεί μια εικόνα από κάθε σελίδα των PDF εγγράφων με ευκολία. Μόλις ολοκληρωθεί η διαδικασία, θα πρέπει να αντιστοιχίσετε ένα ξεχωριστό όνομα σε κάθε αρχείο και να το αποθηκεύσετε στο δίσκο. Υποστηρίζει επίσης την αλλαγή της ανάλυσης, της διαφάνειας και άλλων παραμέτρων. Είναι επίσης δυνατό να μετατρέψετε PDF αρχεία σε κείμενο και άλλες μορφές αρχείων.
Συνδυάστε PDF αρχεία χρησιμοποιώντας Python scripts
Έχετε βρεθεί ποτέ σε μια κατάσταση όπου απαιτείται να συνδυάσετε διαφορετικά PDF έγγραφα για να δημιουργήσετε ένα νέο αρχείο PDF; Οι οργανισμοί συχνά απαιτούν τη συγχώνευση πολλών PDF αρχείων σε ένα ενιαίο έγγραφο. Η βιβλιοθήκη PDFsuite καθιστά εύκολο για τους χρήστες της να συνδυάσουν πολλαπλά PDF έγγραφα σε ένα μόνο με λίγες γραμμές του κώδικα Python. Προσθέτει επίσης έναν πίνακα εισαγωγής περιεχομένου για κάθε αρχείο στοιχείου. Η βιβλιοθήκη υποστηρίζει επίσης πλήρως τη διάσπαση μεγάλων PDF εγγράφων σε μικρότερα μέσα στις εφαρμογές της Python.
Συγχωνεύσεις πολλαπλών αρχείων μέσω Python API
def merge(filename):
writeContext = None
shortName = os.path.splitext(filename)[0]
outFilename = shortName + "+wm.pdf"
metaDict = getDocInfo(filename)
writeContext = createOutputContextWithPath(outFilename, metaDict)
readPDF = createPDFDocumentWithPath(filename)
mergePDF = createPDFDocumentWithPath(watermark)
if writeContext != None and readPDF != None:
numPages = Quartz.CGPDFDocumentGetNumberOfPages(readPDF)
for pageNum in range(1, numPages + 1):
page = Quartz.CGPDFDocumentGetPage(readPDF, pageNum)
mergepage = Quartz.CGPDFDocumentGetPage(mergePDF, 1)
if page:
mediaBox = Quartz.CGPDFPageGetBoxRect(page, Quartz.kCGPDFMediaBox)
if Quartz.CGRectIsEmpty(mediaBox):
mediaBox = None
Quartz.CGContextBeginPage(writeContext, mediaBox)
Quartz.CGContextSetBlendMode(writeContext, Quartz.kCGBlendModeOverlay)
Quartz.CGContextDrawPDFPage(writeContext, page)
Quartz.CGContextDrawPDFPage(writeContext, mergepage)
Quartz.CGContextEndPage(writeContext)
Quartz.CGPDFContextClose(writeContext)
del writeContext
else:
print ("A valid input file and output file must be supplied.")
sys.exit(1)
if __name__ == "__main__":
for filename in sys.argv[1:]:
merge(filename)
Μετατροπή PDF αρχείων σε αρχείο κειμένου μέσω Python
Η βιβλιοθήκη ανοικτού κώδικα PDFsuite περιλαμβάνει πολλά σημαντικά χαρακτηριστικά για τη μετατροπή PDF εγγράφων σε πολυάριθμες μορφές αρχείων υποστήριξης. Ένα σημαντικό χαρακτηριστικό είναι η μετατροπή του περιεχομένου κειμένου ενός αρχείου PDF σε ένα εξωτερικό αρχείο κειμένου και η αποθήκευση του στον τόπο της επιλογής σας. Είναι επίσης δυνατό να αποθηκεύσετε κάθε σελίδα των PDF εγγράφων ως ξεχωριστό αρχείο και να το αποθηκεύσετε με διαφορετικό όνομα.
Μετατροπή PDF εγγράφων σε αρχείο κειμένου μέσω Python API
import os, sys
from Quartz import PDFDocument
from CoreFoundation import (NSURL, NSString)
# Can't seem to import this constant, so manually creating it.
NSUTF8StringEncoding = 4
def main():
for filename in sys.argv[1:]:
shortName = os.path.splitext(filename)[0]
outputfile = shortName+" text.txt"
pdfURL = NSURL.fileURLWithPath_(filename)
pdfDoc = PDFDocument.alloc().initWithURL_(pdfURL)
if pdfDoc :
pdfString = NSString.stringWithString_(pdfDoc.string())
pdfString.writeToFile_atomically_encoding_error_(outputfile, True, NSUTF8StringEncoding, None)
if __name__ == "__main__":
main()
Περιστρέψτε, Trim, Crop PDFs ή σελίδες στις εφαρμογές Python
Η βιβλιοθήκη PDFsuite περιλαμβάνει πολλές σημαντικές λειτουργίες για την εύκολη διαχείριση PDF αρχείων. Επιτρέπει στους προγραμματιστές να περιστρέψουν, να κόψουν, να καλλιεργήσουν, να σκιαγραφήσουν, να κλιμακώσουν και να αυξήσουν PDF έγγραφα μέσα στη δική τους εφαρμογή Python. Παρέχει δύο τρόπους για την περιστροφή ενός αρχείου PDF σελίδων. Το πρώτο είναι να δημιουργήσετε ένα νέο PDF πλαίσιο, να μεταμορφώσετε γραφικά κάθε σελίδα του αρχικού και να αποθηκεύσετε το αρχείο. Δεύτερον, απλά πρέπει να προσαρμόσετε την παράμετρο «περιστροφής» σε κάθε σελίδα και αυτό είναι.
Πώς να αφαιρέσετε PDF αρχεία μέσω Python API
import sys
import os
from Quartz import PDFDocument, kPDFDisplayBoxMediaBox, kPDFDisplayBoxTrimBox, CGRectEqualToRect
from CoreFoundation import NSURL
mediabox = kPDFDisplayBoxMediaBox
trimbox = kPDFDisplayBoxTrimBox
def trimPDF(filename):
hasBeenChanged = False
# filename = filename.decode('utf-8')
shortName = os.path.splitext(filename)[0]
outFilename = shortName + " TPS.pdf"
pdfURL = NSURL.fileURLWithPath_(filename)
pdfDoc = PDFDocument.alloc().initWithURL_(pdfURL)
if pdfDoc:
pages = pdfDoc.pageCount()
for p in range(0, pages):
page = pdfDoc.pageAtIndex_(p)
mediaBoxSize = page.boundsForBox_(mediabox)
trimBoxSize = page.boundsForBox_(trimbox)
if not CGRectEqualToRect(mediaBoxSize, trimBoxSize):
page.setBounds_forBox_(trimBoxSize, mediabox)
hasBeenChanged = True
if hasBeenChanged:
pdfDoc.writeToFile_(outFilename)
if __name__ == '__main__':
for filename in sys.argv[1:]:
trimPDF(filename)