2012-03-13 18 views
9

के साथ पीडीएफ फाइलों को प्रदर्शित करना मैं पीडीएफ फाइलों को प्रदर्शित करने वाला एक पायथन 3/पीईजीटीके 3 एप्लीकेशन लिखना चाहता हूं और मुझे एक पायथन पैकेज नहीं मिला जो मुझे ऐसा करने की अनुमति देता है।
वहाँ pypoppler है, लेकिन यह पुराना लग रहा है (?) और python3 समर्थन करने के लिए प्रतीत नहीं होता है (?)python3

आप किसी भी सुझाव है?

संपादित करें: ध्यान दें कि मुझे पीडीएफ फॉर्म, हेरफेर या लेखन जैसे फैंसी फीचर्स की आवश्यकता नहीं है।

+0

पीडीएफ फाइलों बनाना चाहते हैं ?? –

+0

नहीं, और सबसे अधिक संभावना नहीं है। –

+0

ठीक है ... बीटी मैंने आपको लिंक प्रदान किया ... इस टिप्पणी से पहले .... बीटी आप भी उसको चिपका सकते हैं .. –

उत्तर

11

यह पता चला है कि पॉपप्लर-ग्लिब के नए संस्करणों को बाइंडिंग की आवश्यकता नहीं है। वे GObject आत्मनिरीक्षण फाइलों के साथ जहाज है और इसलिए आयात किया जा सकता है और इस्तेमाल किया प्रकार है:

#!/usr/bin/python3 

from gi.repository import Poppler 

document = Poppler.Document.new_from_file("file:///home/me/some.pdf", None) 
print(document.get_pdf_version_string()) 

आसान था यही कारण है, यह नहीं था? मुझे यह पता लगाने में घंटों लगे ...

ध्यान दें कि अगर कोई भी जीटीके आयात करना चाहता है तो कम से कम पॉपप्लर-0.18 की आवश्यकता है।

यहाँ एक जीयूआई के साथ एक और कम से कम उदाहरण है:

#!/usr/bin/python3 

from gi.repository import Poppler, Gtk 

def draw(widget, surface): 
    page.render(surface) 

document = Poppler.Document.new_from_file("file:///home/me/some.pdf", None) 
page = document.get_page(0) 

window = Gtk.Window(title="Hello World") 
window.connect("delete-event", Gtk.main_quit) 
window.connect("draw", draw) 
window.set_app_paintable(True) 

window.show_all() 
Gtk.main() 
1

This post का कहना है कि एविन्स का नवीनतम विकास संस्करण (जो मुझे लगता है कि जल्द ही 3.4 हो जाएगा) PyGObject के माध्यम से एम्बेडिंग का समर्थन करता है, जो शायद आपके उद्देश्यों के लिए काम करेगा।

+0

मुझे नहीं लगता कि यह होगा, क्योंकि मैं pixmap को एक्सेस और संशोधित नहीं कर सका। मैं पीडीएफ फ़ाइल को एक पिक्समैप में प्रस्तुत करने के लिए एक पैकेज का उपयोग करना चाहता हूं, इसे कैरो के साथ संशोधित करें और इसे प्रदर्शित करें। क्षमा करें, अगर मेरा प्रश्न पर्याप्त स्पष्ट नहीं था –

संबंधित मुद्दे