Domanda

Voglio scrivere un'applicazione Python3 / PYGTK3 che visualizza file PDF e non sono stato in grado di trovare un pacchetto Python che mi permette di farlo.
C'è Pypoppler , ma sembra obsoleto (?) E non sembra supportare Python3 (?)

.

Hai qualche suggerimento?

Modifica: Nota, che non ho bisogno di funzionalità di fantasia, come forme PDF, manipolazione o scrittura.

È stato utile?

Soluzione

Si scopre che le versioni più recenti di Poppler-Glib non richiedono legami in quanto tali.Spediscono con i file di introspezione gobject e possono quindi essere importati e utilizzati come segue:

#!/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())
.

È stato facile, vero?Mi ci sono volute ore per scoprirlo ...

Nota che si ha bisogno di almeno poppler-0,18, se si vuole importare anche GTK.

Ecco un altro esempio minimo con una GUI:

#!/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()
.

Altri suggerimenti

Questo post afferma che la versione di sviluppo più recente di Evince (che immagino diventerà 3,4 a breve) supporta l'incorporamento tramite PyGobject, che probabilmente funzionerebbe per i tuoi scopi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top