Luo, muokkaa ja muunna PDF kuviksi Python API:n kautta
Ilmainen Python API PDF-tiedostojen luomiseen, muokkaamiseen ja muuntamiseen kuviksi ja päinvastoin. Yhdistä/jaa ja muunna PDF tekstiksi, pyöritä/leikkaa/rajaa PDF-tiedostoja.
PDFsuite on erittäin hyödyllinen Python-kirjasto, joka tarjoaa täydelliset toiminnot, jotka liittyvät PDF-dokumenttien luomiseen ja hallintaan. Kirjasto on erittäin vakaa ja sitä voidaan käyttää helposti MacOS (OS X) -käyttöjärjestelmässä. PDFsuite on erittäin helppokäyttöinen ja antaa käyttäjille mahdollisuuden hallita PDF-tiedostojaan, ja kaikki mitä he voivat haluta tehdä PDF-tiedostolle, on vain napsautuksen päässä.
Kirjasto on erittäin monipuolinen ja sisältää useita tärkeitä PDF-dokumenttien käsittelyyn liittyviä ominaisuuksia, kuten PDF-dokumenttien muuntaminen PDF-muotoon, PDF-dokumenttien yhdistäminen tai jakaminen, kuvien muuntaminen PDF-muotoon, PDF-kierto, sivunumeroiden lisääminen PDF-tiedostoon, vesileimojen lisääminen PDF-tiedostoja, piirrä grafiikkaa PDF-tiedostoihin, käytä kvartsisuodattimia PDF-tiedostoihin, käytä ja lue metatietoja, vie PDF-sivuja kuvina, laske PDF-sivuja ja paljon muuta. Avoimen lähdekoodin PDFsuite-skriptit ovat täysin ilmaisia käytettäväksi kaikissa projekteissa ja niitä voidaan muokata millä tahansa tavalla.
PDFsuiten käytön aloittaminen
PDFsuiten suorittamiseksi sinun on ensin asennettava python 3 ja pyobjc-kirjasto, ja sen jälkeen kirjoita terminaaliin seuraava komento ja paina Return.
Asenna pyobjc pipin kautta
pip3 install pyobjc
Kirjasto on myös mahdollista asentaa manuaalisesti; lataa uusimmat julkaisutiedostot suoraan GitHub-arkistosta.
Muunna PDF kuvaksi ja muiksi muodoiksi
PDFsuite sisältää täydelliset toiminnot PDF-dokumenttien muuntamiseen erilaisiin kuvatiedostomuotoihin. Se tarjoaa PNG-, JPEG-, Tiff- ja muita suosittuja kuvatiedostomuotoja. On myös mahdollista luoda helposti bittikarttakuva toimitettujen PDF-dokumenttien jokaiselta sivulta. Kun prosessi on valmis, sinun on annettava jokaiselle tiedostolle erillinen nimi ja tallennettava se levylle. Se tukee myös resoluution, läpinäkyvyyden ja muiden parametrien muuttamista. On myös mahdollista muuntaa PDF-tiedostoja tekstiksi ja muihin tiedostomuotoihin.
Yhdistä useita PDF-tiedostoja Python-skripteillä
Oletko koskaan ollut tilanteessa, jossa eri PDF-dokumentteja on yhdistettävä uuden PDF-tiedoston luomiseksi? Organisaatiot vaativat usein useiden PDF-tiedostojen yhdistämistä yhdeksi asiakirjaksi. PDFsuite-kirjaston avulla käyttäjien on helppo yhdistää useita PDF-dokumentteja yhdeksi tiedostoksi vain muutamalla Python-koodirivillä. Se lisää myös sisällysluettelon jokaiselle komponenttitiedostolle. Kirjasto tukee täysin myös suurten PDF-dokumenttien jakamista pienempiin Python-sovelluksissa.
Yhdistä useita PDF-tiedostoja Python API:n kautta
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)
Muunna PDF-tiedostot tekstitiedostoiksi Pythonin kautta
Avoimen lähdekoodin PDFsuite-kirjasto sisältää useita tärkeitä ominaisuuksia PDF-dokumenttien muuntamiseen lukuisiin tukitiedostomuotoihin. Yksi tärkeä ominaisuus on PDF-tiedoston tekstisisällön muuntaminen ulkopuoliseksi tekstitiedostoksi ja sen tallentaminen haluamaasi paikkaan. On myös mahdollista tallentaa PDF-dokumenttien jokainen sivu erillisenä tiedostona ja tallentaa se eri nimellä.
Muunna PDF-asiakirjat tekstitiedostoiksi Python API:n kautta
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()
Kierrä, leikkaa, rajaa PDF-tiedostoja tai sivuja Python-sovelluksissa
PDFsuite-kirjastossa on useita tärkeitä toimintoja PDF-tiedostojen helppoon käsittelyyn. Sen avulla ohjelmoijat voivat kiertää, leikata, rajata, sävyttää, vesileimoja, skaalata ja huuhdella PDF-dokumentteja omassa Python-sovelluksessaan. Siinä on kaksi tapaa kääntää PDF-sivua tai täydellinen tiedosto. Ensimmäinen on luoda uusi PDF-konteksti, muuttaa graafisesti jokainen alkuperäisen sivu ja tallentaa tiedosto. Toiseksi, sinun tarvitsee vain säätää "kierto"-parametria jokaisella sivulla ja se on siinä.
Kuinka leikata PDF-tiedostoja Python API:n kautta
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)