Opprett, rediger og konverter PDF til bilder via Python API
Gratis Python API for å lage, redigere og konvertere PDF til bilder og omvendt. Slå sammen / del og konverter PDF til tekst, roter / trim / beskjær PDF-er.
PDFsuite er et veldig nyttig Python-bibliotek som gir komplett funksjonalitet knyttet til oppretting og administrasjon av PDF-dokumenter. Biblioteket er veldig stabilt og kan enkelt kjøres på MacOS (OS X). PDFsuite er veldig enkel å bruke og gir brukerne muligheten til å administrere PDF-filene sine, og alt de kunne ønske å gjøre til en PDF er bare et klikk unna.
Biblioteket er svært funksjonsrikt og har inkludert flere viktige funksjoner knyttet til PDF-dokumenthåndtering, for eksempel konvertering av PDF-dokumenter til PDF, sammenslåing eller splitting av PDF-dokumenter, konvertering av bilder til PDF, PDF-rotasjon, Legge til sidetall til PDF, sette inn vannmerker til PDF-filer, tegn grafikk i PDF-filer, bruk kvartsfiltre på PDF-filer, få tilgang til og les metadata, eksporter PDF-sider som bilder, tell sider i PDF og mye mer. PDFsuite-skriptene er åpen kildekode og er helt gratis for bruk i alle slags prosjekter og kan tilpasses på alle måter.
Komme i gang med PDFsuite
For å kjøre PDFsuite må du først installere python 3 og pyobjc-biblioteket, og deretter i terminalen, skriv inn følgende kommando og trykk Retur.
Installer pyobjc via pip
pip3 install pyobjc
Det er også mulig å installere biblioteket manuelt; last ned de siste utgivelsesfilene direkte fra GitHub-depotet.
Konverter PDF til bilde og andre formater
PDFsuiten har integrert komplett funksjonalitet for konvertering av PDF-dokumenter til forskjellige bildefilformater. Den gir PNG, JPEG, Tiff og andre populære bildefilformater. Det er også mulig å enkelt lage et punktgrafikkbilde fra hver side i de medfølgende PDF-dokumentene. Når prosessen er fullført, må du gi hver fil et eget navn og lagre den på disken. Den støtter også endring av oppløsning, gjennomsiktighet og andre parametere. Det er også mulig å konvertere PDF-filer til tekst og andre filformater.
Kombiner flere PDF-filer ved hjelp av Python-skript
Har du noen gang vært i en situasjon der det er nødvendig å kombinere forskjellige PDF-dokumenter for å lage en ny PDF-fil? Organisasjoner krever ofte å slå sammen flere PDF-filer til ett enkelt dokument. PDFsuite-biblioteket gjør det enkelt for brukerne å kombinere flere PDF-dokumenter til ett enkelt med bare et par linjer med Python-kode. Den legger også til en innholdsfortegnelse for hver komponentfil. Biblioteket støtter også fullt oppdeling av store PDF-dokumenter til mindre i Python-apper.
Slå sammen 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
Åpen kildekode PDFsuite-biblioteket har inkludert flere viktige funksjoner for PDF-dokumentkonvertering til en rekke støttefilformater. En viktig funksjon er å konvertere tekstinnholdet i en PDF-fil til en ekstern tekstfil og lagre den på stedet du ønsker. Det er også mulig å lagre hver side av PDF-dokumentene som en separat fil og lagre den med et annet 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, beskjær PDF-er eller sider i Python-apper
PDFsuite-biblioteket har inkludert flere viktige funksjoner for enkel håndtering av PDF-filer. Den lar programmerere rotere, trimme, beskjære, fargetone, vannmerke, skalere og skylle PDF-dokumenter i deres egen Python-applikasjon. Den har gitt to måter å rotere en PDF-side eller en komplett fil på. Den første er å lage en ny PDF-kontekst, grafisk transformere hver side i originalen og lagre filen. For det andre trenger du bare å justere "rotasjons"-parameteren på hver side, og det er det.
Hvordan trimme 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)