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?
PDFs einbetten?
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.
In punkto evince würde ich einfach mal auf der Mailingliste oder im IRC Channel fragen. Die sind auf der Projektseite angegeben.
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)
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Oh, super. Und Ali kenne ich aus dem IRC, das trifft sich ja perfekt.Trundle hat geschrieben:Es existieren Python-Bindings für poppler.
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.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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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)