Opret, rediger og konverter PDF til billeder via Python API
Gratis Python API til oprettelse, redigering og konvertering af PDF til billeder og omvendt. Flet/opdel & konverter PDF til tekst, Roter / Trim / Beskær PDF'er.
PDFsuite er et meget nyttigt Python-bibliotek, der giver komplet funktionalitet relateret til oprettelse og administration af PDF-dokumenter. Biblioteket er meget stabilt og kan nemt køres på MacOS (OS X). PDFsuite er meget nem at bruge og giver brugerne mulighed for at administrere deres PDF-filer, og alt, hvad de kunne ønske sig at gøre til en PDF, er kun et klik væk.
Biblioteket er meget funktionsrigt og har inkluderet flere vigtige funktioner relateret til PDF-dokumenthåndtering, såsom PDF-dokumentkonvertering til PDF, fletning eller opdeling af PDF-dokumenter, konvertering af billeder til PDF, PDF-rotation, Tilføjelse af sidetal til PDF, indsættelse af vandmærker til PDF'er, tegn grafik i PDF'er, anvend kvartsfiltre på PDF'er, få adgang til og læs metadata, eksporter PDF-sider som billeder, tæl sider i PDF og mange flere. PDFsuite scripts er open source og er helt gratis til brug i enhver form for projekt og kan tilpasses på enhver måde.
Kom godt i gang med PDFsuite
For at køre PDFsuite først skal du installere python 3 og pyobjc-biblioteket, og derefter i terminalen skal du skrive følgende kommando og trykke på Retur.
Installer pyobjc via pip
pip3 install pyobjc
Det er også muligt at installere biblioteket manuelt; download de seneste udgivelsesfiler direkte fra GitHub-lageret.
Konverter PDF til billede og andre formater
PDFsuiten har inkorporeret komplet funktionalitet til konvertering af PDF-dokumenter til forskellige billedfilformater. Det giver PNG, JPEG, Tiff og andre populære billedfilformater. Det er også muligt at oprette et bitmapbillede fra hver side i de medfølgende PDF-dokumenter med lethed. Når processen er færdig, skal du tildele et separat navn til hver fil og gemme den på disken. Det understøtter også ændring af opløsning, gennemsigtighed og andre parametre. Det er også muligt at konvertere PDF-filer til tekst og andre filformater.
Kombiner flere PDF-filer ved hjælp af Python-scripts
Har du nogensinde været i en situation, hvor det er nødvendigt at kombinere forskellige PDF-dokumenter for at oprette en ny PDF-fil? Organisationer kræver ofte at flette flere PDF-filer til et enkelt dokument. PDFsuite-biblioteket gør det nemt for dets brugere at kombinere flere PDF-dokumenter til et enkelt med blot et par linjer Python-kode. Det tilføjer også en indholdsfortegnelse for hver komponentfil. Biblioteket understøtter også fuldt ud opdeling af store PDF-dokumenter i mindre i Python-apps.
Flet flere PDF-filer via 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)
Konverter PDF-filer til tekstfil via Python
Open source PDFsuite-biblioteket har inkluderet flere vigtige funktioner til PDF-dokumentkonvertering til adskillige understøttende filformater. En vigtig funktion er at konvertere tekstindholdet i en PDF-fil til en ekstern tekstfil og gemme den på det sted, du ønsker. Det er også muligt at gemme hver side af PDF-dokumenterne som en separat fil og gemme den med et andet navn.
Konverter PDF-dokumenter til tekstfil via 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()
Roter, trim, beskær PDF-filer eller sider i Python-apps
PDFsuite-biblioteket har inkluderet flere vigtige funktioner til nem håndtering af PDF-filer. Det giver programmører mulighed for at rotere, trimme, beskære, tone, vandmærke, skalere og skylle PDF-dokumenter inde i deres egen Python-applikation. Det har givet to måder at rotere en PDF-side eller en komplet fil på. Den første er at oprette en ny PDF-kontekst, grafisk transformere hver side i originalen og gemme filen. For det andet skal du bare justere 'rotations'-parameteren på hver side, og det er det.
Sådan trimmes PDF-filer via 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)