Skapa, redigera och konvertera PDF till bilder via Python API
Gratis Python API för att skapa, redigera och konvertera PDF till bilder och vice versa. Sammanslagning/split & konvertera PDF till text, Rotate/Trim/Crop PDFs.
PDFsuite är ett mycket användbart Python-bibliotek som ger fullständig funktionalitet relaterad till PDF dokumentskapande och förvaltning. Biblioteket är mycket stabilt och kan enkelt köras på MacOS (Of X). PDF-sviten är mycket lätt att använda och ger användarna möjlighet att hantera sina PDF filer och allt de kan göra för en PDF är bara ett klick bort.
Biblioteket är mycket funktionsrikt och har inkluderat flera viktiga funktioner relaterade till PDF dokumenthantering, såsom PDF dokument konvertering till PDF, sammanslagning eller Splitting PDF dokument, konvertera bilder till PDF, PDF rotation, Lägga till sidnummer till PDF, infoga Watermark till PDFs, dra grafik på PDF-talet, tillämpa kvartsfilter till PDF-talet, få tillgång till och läsa metadata, exportera PDF sidor som bilder, räkna sidor på PDF och många fler. PDFsuite skript är öppen källkod är helt gratis för användning i alla typer av projekt och kan anpassas på något sätt.
Komma igång med PDFsuite
För att köra PDFsuite först måste du installera python 3 och pyobjc-biblioteket, och sedan i terminalen vänligen skriv följande kommando och tryck på Return.
Installera pyobjc via pip
pip3 install pyobjc
Det är också möjligt att installera biblioteket manuellt; ladda ner de senaste versionsfilerna direkt från GitHub-förrådet.
Konvertera PDF till bild och andra format
PDFsuiten har inkorporerat komplett funktionalitet för att konvertera PDF-dokument till olika bildfilformat. Den tillhandahåller PNG, JPEG, Tiff och andra populära bildfilformat. Det är också möjligt att enkelt skapa en bitmappsbild från varje sida i de medföljande PDF-dokumenten. När processen är klar måste du tilldela ett separat namn till varje fil och spara den på disken. Det stöder också ändring av upplösning, transparens och andra parametrar. Det är också möjligt att konvertera PDF-filer till text och andra filformat.
Kombinera flera PDF filer med Python Scripts
Har du någonsin varit i en situation där det krävs att du kombinerar olika PDF dokument för att skapa en ny PDF-fil? Organisationer kräver ofta sammanslagning av flera PDF filer i ett enda dokument. PDFsuite biblioteket gör det enkelt för sina användare att kombinera flera PDF dokument till en enda med bara ett par rader av Python-kod. Den lägger också till en innehållsförteckning för varje komponentfil. Biblioteket stöder också fullt ut att dela stora PDF dokument till mindre i Python-appar.
Sammanslagning av flera 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)
Konvertera PDF filer till textfil via Python
Open source PDFsuite biblioteket har inkluderat flera viktiga funktioner för PDF dokument konvertering till många supportfilformat. En viktig funktion är att konvertera textinnehållet i en PDF-fil till en extern textfil och spara den till platsen för ditt val. Det är också möjligt att spara varje sida i de PDF dokumenten som en separat fil och spara den med ett annat namn.
Konvertera PDF dokument till textfil 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()
Rotera, trim, gröda PDFs eller sidor i Python Apps
PDF-svitbiblioteket har inkluderat flera viktiga funktioner för att enkelt kunna hantera PDF filer. Det gör det möjligt för programmerare att rotera, trimma, gröda, ton, vattenstämpel, skala och öka PDF dokument i sin egen Python-applikation. Det har gett två sätt att rotera en PDF-sida eller fullständig fil. Den första är att skapa ett nytt PDF-kontext, grafiskt omvandla varje sida av originalet och spara filen. För det andra behöver du bara justera parametern "rotation" på varje sida och det är det.
Hur man trimmar 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)