PDFs einbetten?

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Antworten
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hi!

Ich brauche momentan eigentlich nur einen Tipp in die richtige Richtung. Das Problem ist, dass ich gerne PDFs in eine PyGTK-Applikation einbetten will. Ich habe dummerweise keine Ahnung wie man das anstellen sollte. Ein Gedanke war, Evince da irgendwie einzuspannen, ein anderer irgendwie die PDFs über Cairo und libpoppler reinzuladen. Hat jemand eine Ahnung wie man das hinbekommen könnte?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

poppler besitzt keine Python-Bindings, es ließe sich also nur über ctypes ansprechen. Dokumentation zur glib-Anbindung gibt es keine im Netz, sondern nur im Source Tree, im Verzeichnis glib/reference.

In punkto evince würde ich einfach mal auf der Mailingliste oder im IRC Channel fragen. Die sind auf der Projektseite angegeben.
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Es existieren Python-Bindings für poppler. Damit kann man sich dann das Dokument laden (`poppler.document_new_from_file()`) und an die einzelnen Seiten kommen (`document.get_page()`). Und ein Seiten-Objekt hat dann eine `render()`-Methode, mit der man sie auf einem Cairo-Context abbilden kann. Siehe auch die Demo, die mit dem Binding kommt, müsste man sich eigentlich leicht ein hübsches Widget damit bauen können.
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Trundle hat geschrieben:Es existieren Python-Bindings für poppler.
Oh, super. Und Ali kenne ich aus dem IRC, das trifft sich ja perfekt.
Trundle hat geschrieben:Siehe auch die Demo, die mit dem Binding kommt, müsste man sich eigentlich leicht ein hübsches Widget damit bauen können.
Sehr schön, dann werd' ich da auf jeden Fall mal reingucken. Ich wollt schon seit langem mal versuchen ein Widget zu basteln. Ich werd mich dann melden, wenn ich an der Front weitergekommen bin.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Hier mal mein unfertiger, unaufgeräumter Versuch. Es werden einfach alle Seiten untereinander angezeigt. Das Widget unterstützt Scaling, Scrolling, man kann zu Seiten springen und beim Seitenwechsel wird ein Signal ausgelöst und man kann die Hintergrundfarbe der Seite bestimmen.
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
Antworten