पाइथन API के माध्यम से PDF से छवियाँ बनाएं, संपादित करें और कनवर्ट करें
फ्री पायथन API बनाने, संपादित करने और परिवर्तित करने के लिए PDF छवियों और इसके विपरीत। मर्ज / विभाजन और PDF को टेक्स्ट, रोटेट / ट्रिम / क्रॉप PDF में परिवर्तित करें।
PDFsuite एक बहुत ही उपयोगी Python लाइब्रेरी है जो PDF दस्तावेज़ निर्माण और प्रबंधन से संबंधित पूर्ण कार्यक्षमता प्रदान करती है। पुस्तकालय बहुत स्थिर है और इसे MacOS (OS X) पर आसानी से चलाया जा सकता है। PDFsuite का उपयोग करना बहुत आसान है और उपयोगकर्ताओं को अपनी PDF फ़ाइलों को प्रबंधित करने की क्षमता देता है और वह सब कुछ जो वे संभवतः एक PDF में करना चाहते हैं, बस एक क्लिक दूर है।
पुस्तकालय बहुत सुविधा संपन्न है और इसमें पीडीएफ दस्तावेजों को संभालने से संबंधित कई महत्वपूर्ण विशेषताएं शामिल हैं, जैसे पीडीएफ दस्तावेजों को पीडीएफ में बदलना, पीडीएफ दस्तावेजों को विलय या विभाजित करना, छवियों को पीडीएफ में परिवर्तित करना, पीडीएफ रोटेशन, पीडीएफ में पेज नंबर जोड़ना, वॉटरमार्क डालना पीडीएफ, पीडीएफ में ग्राफिक्स बनाएं, पीडीएफ में क्वार्ट्ज फिल्टर लागू करें, मेटाडेटा तक पहुंचें और पढ़ें, पीडीएफ पेजों को छवियों के रूप में निर्यात करें, पीडीएफ में पेजों की गिनती करें और बहुत कुछ। PDFsuite स्क्रिप्ट ओपन सोर्स हैं और किसी भी प्रकार की परियोजना में उपयोग के लिए पूरी तरह से स्वतंत्र हैं और इसे किसी भी तरह से अनुकूलित किया जा सकता है।
पीडीएफ सूट के साथ शुरू करना
पहले PDFsuite चलाने के लिए आपको python 3 और pyobjc लाइब्रेरी स्थापित करने की आवश्यकता है, और उसके बाद टर्मिनल में कृपया निम्नलिखित कमांड और प्रेस रिटर्न टाइप करें।
Pyobjc
pip3 install pyobjc
पुस्तकालय को मैन्युअल रूप से स्थापित करना भी संभव है; नवीनतम रिलीज़ फ़ाइलें सीधे GitHub रिपॉजिटरी से डाउनलोड करें।
PDF से छवि और अन्य प्रारूपों में कनवर्ट करें
PDFsuite विभिन्न छवि फ़ाइल स्वरूपों के लिए PDF दस्तावेजों को परिवर्तित करने के लिए पूर्ण कार्यक्षमता शामिल है। यह एनजी, जेपीईजी, डिफ और अन्य लोकप्रिय छवि फ़ाइल प्रारूप प्रदान करता है। आसानी से प्रदान किए गए PDF दस्तावेजों के प्रत्येक पृष्ठ से बैटमैन छवि बनाना भी संभव है। प्रक्रिया पूरी होने के बाद आपको प्रत्येक फ़ाइल को एक अलग नाम सौंपने और इसे डिस्क पर सहेजने की आवश्यकता होती है। यह संकल्प, पारदर्शिता और अन्य मापदंडों को बदलने का भी समर्थन करता है। यह भी पाठ और अन्य फ़ाइल स्वरूपों के लिए PDF फ़ाइलों को परिवर्तित करने के लिए संभव है।
पायथन स्क्रिप्ट का उपयोग करके एकाधिक PDF फ़ाइलों को मिलाएं
क्या आप कभी भी ऐसी स्थिति में रहे हैं जहां एक नई PDF फाइल बनाने के लिए विभिन्न PDF दस्तावेजों को जोड़ना आवश्यक है? संगठनों को अक्सर एक दस्तावेज़ में एकाधिक PDF फ़ाइलों को विलय करने की आवश्यकता होती है। PDFsuite पुस्तकालय अपने उपयोगकर्ताओं के लिए पायथन कोड की सिर्फ एक जोड़ी के साथ एक एकल में एकाधिक PDF दस्तावेजों को गठबंधन करना आसान बनाता है। यह प्रत्येक घटक फ़ाइल के लिए सामग्री प्रविष्टि की एक तालिका भी जोड़ता है। पुस्तकालय पूरी तरह से पायथन ऐप के अंदर छोटे लोगों में बड़े PDF दस्तावेजों को विभाजित करने का समर्थन करता है।
पाइथन API के माध्यम से एकाधिक PDF फ़ाइलें मर्ज करें
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 फाइलें कनवर्ट करें
ओपन सोर्स PDFsuite पुस्तकालय में कई समर्थन फ़ाइल प्रारूपों में PDF दस्तावेज़ रूपांतरण के लिए कई महत्वपूर्ण विशेषताएं शामिल हैं। एक महत्वपूर्ण विशेषता एक बाहरी पाठ फ़ाइल में PDF फ़ाइल की पाठ सामग्री को परिवर्तित कर रही है और इसे अपनी पसंद के स्थान पर सहेज रही है। PDF दस्तावेजों के प्रत्येक पृष्ठ को एक अलग फ़ाइल के रूप में सहेजना और इसे एक अलग नाम से बचाना भी संभव है।
पाइथन API के माध्यम से PDF दस्तावेज़ों को टेक्स्ट फ़ाइल में कनवर्ट करें
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()
पाइथन ऐप्स में रोटेट, ट्रिम, क्रॉप PDFs या पेज
PDFsuite पुस्तकालय आसानी से PDF फ़ाइलों को संभालने के लिए कई महत्वपूर्ण कार्यक्षमताओं को शामिल किया गया है। यह प्रोग्रामर को अपने स्वयं के पायथन एप्लिकेशन के अंदर PDF दस्तावेजों को घुमाने, ट्रिम करने, फसल, टिंट, वॉटरमार्क, स्केल और बढ़ाने की अनुमति देता है। इसने PDF पृष्ठ या पूर्ण फ़ाइल को घुमाने के लिए दो तरीके प्रदान किए हैं। पहला एक नया PDF संदर्भ बनाना है, जो मूल के प्रत्येक पृष्ठ को चित्रमय रूप से बदल देता है और फ़ाइल को बचाता है। दूसरे, आपको बस प्रत्येक पृष्ठ पर 'घूर्णन' पैरामीटर को समायोजित करने की आवश्यकता है और यह है।
पाइथन API के माध्यम से PDF फ़ाइलों को कैसे ट्रिम करें
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)