Seite 1 von 1
PDFs einbetten?
Verfasst: Samstag 1. November 2008, 20:16
von Leonidas
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?
Verfasst: Samstag 1. November 2008, 20:44
von 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.
Verfasst: Samstag 1. November 2008, 20:54
von Trundle
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.
Verfasst: Samstag 1. November 2008, 21:55
von Leonidas
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.
Verfasst: Sonntag 2. November 2008, 04:03
von Trundle
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.