2008-12-01 11 views
39

के साथ छवियों की एक श्रृंखला में पीडीएफ को कनवर्ट करना मैं एक बहु पृष्ठ पीडीएफ को जेपीईजी की श्रृंखला में बदलने के लिए पायथन का उपयोग करने का प्रयास कर रहा हूं। मैं पीडीएफ को अलग-अलग पृष्ठों में आसानी से उपलब्ध टूल के साथ विभाजित कर सकता हूं, लेकिन मैं कुछ भी नहीं ढूंढ पा रहा हूं जो छवियों को पीडीएफ को गुप्त कर सकता है।पाइथन

पीआईएल काम नहीं करता है, क्योंकि यह पीडीएफ नहीं पढ़ सकता है। मैंने पाया है कि दो विकल्प या तो GhostScript या ImageMagick को खोल के माध्यम से उपयोग कर रहे हैं। यह मेरे लिए एक व्यवहार्य विकल्प नहीं है, क्योंकि इस कार्यक्रम को क्रॉस-प्लेटफ़ॉर्म होने की आवश्यकता है, और मुझे यकीन नहीं है कि इनमें से कोई भी प्रोग्राम उन मशीनों पर उपलब्ध होगा, जिन्हें इंस्टॉल किया जाएगा और इसका उपयोग किया जाएगा।

क्या वहां कोई पाइथन पुस्तकालय हैं जो ऐसा कर सकते हैं?

+0

क्या आपको कभी समाधान मिला? मैं काम में परिवर्तित हो गया, लेकिन छवियों का सम्मान करने के लिए ImageMagick नहीं लग रहा है। – stormlifter

+0

उम्मीद है कि यह मदद करता है - [http://stackoverflow.com/questions/34129995/pdf-to-raw-image] (http://stackoverflow.com/questions/34129995/pdf-to-raw-image) –

उत्तर

17

ImageMagick में Python bindings है।

+0

I उस हाँ में लात मारना पसंद है, आप बस अपनी परियोजना के साथ ImageMagick लाइब्रेरी को शामिल कर सकते हैं - बस सुनिश्चित करें कि आप लाइसेंस शर्तों की समीक्षा करें ताकि आप अपने रीडमे – Coderer

+13

में उपयुक्त सामग्री डाल सकें, किन बाइंडिंग उपयोगी हो सकती है? –

4

आप घोस्टस्क्रिप्ट निर्भरता से बच नहीं सकते हैं। यहां तक ​​कि इमेजमैजिक भी अपने पीडीएफ पढ़ने के कार्यों के लिए घोस्टस्क्रिप्ट पर निर्भर करता है। इसका कारण पीडीएफ प्रारूप की जटिलता है: पीडीएफ में केवल बिटमैप जानकारी नहीं होती है, लेकिन अधिकतर वेक्टर आकार, पारदर्शिता इत्यादि इसके अलावा यह पता लगाना काफी जटिल है कि इनमें से कौन सी ऑब्जेक्ट्स इस पृष्ठ पर दिखाई देती हैं।

तो पीडीएफ पेज का सही प्रतिपादन शुद्ध पायथन पुस्तकालय के लिए स्पष्ट रूप से दायरे से बाहर है।

अच्छी खबर यह है कि घोस्टस्क्रिप्ट कई विंडोज़ और लिनक्स सिस्टम पर पूर्व-स्थापित है, क्योंकि इन सभी पीडीएफ प्रिंटर (एडोब एक्रोबैट को छोड़कर) की भी आवश्यकता है।

1

यदि आप लिनक्स का उपयोग कर रहे हैं तो कुछ संस्करण बॉक्स के बाहर 'pdftopbm' नामक कमांड लाइन उपयोगिता के साथ आते हैं। netpbm

4

यहाँ क्या मेरे लिए काम किया ('Ghostscript स्थापित $ पिप' द्वारा स्थापित) अजगर Ghostscript मॉड्यूल का उपयोग कर:

import ghostscript 

def pdf2jpeg(pdf_input_path, jpeg_output_path): 
    args = ["pdf2jpeg", # actual value doesn't matter 
      "-dNOPAUSE", 
      "-sDEVICE=jpeg", 
      "-r144", 
      "-sOutputFile=" + jpeg_output_path, 
      pdf_input_path] 
    ghostscript.Ghostscript(*args) 

मैं भी पर Ghostscript 9.18 स्थापित मेरी कंप्यूटर और शायद यह अन्यथा काम नहीं किया होता।

+0

में प्रासंगिक भागों की आपूर्ति करें यह नई छवि बनाने के लिए प्रतीत होता है, और मैं पीडीएफ थंबनेल देख सकता हूं, लेकिन किसी कारण से यह बनाए गए नए जेपीईजी की फ़ाइल को बंद नहीं करता है। मुझे यह आउटपुट पायथन से मिला है ##### 246643328 c_void_p (246643328L) 'कोई विचार? – Jed

+0

क्या आप इस मामले पर मेरी समस्या का समाधान करने में मदद कर सकते हैं? https://stackoverflow.com/questions/44448552/python-ghostscript-not-closing-output-file – Jed

+1

ghostscript में python3 के लिए समर्थन नहीं प्रतीत होता है – unlockme