PDF Dateien anzeigen...

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
skypa
User
Beiträge: 97
Registriert: Freitag 5. Januar 2007, 03:13

Moin!
Ich hab ein Pool voller PDF Dateien, mit jeweils 1ner Seite welche eine Zeichnung enthält. Um nun den stilistischen Aspekt besser kontrollieren zu können wollt ich mit python mehrere pdf´s gleichzeitig anzeigen lassen, in einem Canvas z.B.

Features sollen später Zoom z.B. sein.

Hat jemand schon mal was in der Art gemacht? Irgendjemand eine Idee wie man das macht ? :roll:

Thx for listening
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo skypa!

Unter Windows mit wxPython machbar.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Vermutlich könntest du die Python Bindings zu poppler verwenden ;)
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
skypa
User
Beiträge: 97
Registriert: Freitag 5. Januar 2007, 03:13

Hm verdammte Tat, nun muss ich wohl mich erstmal mit wxPython auseinander setzen...
Vielen Dank für den Hinweis von euch! Ich meld mich später :roll:

Python bindings zu poppler? Kannst mir das kurz erläutern, versteh rein Bahnhof :lol:
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

skypa hat geschrieben:Hm verdammte Tat, nun muss ich wohl mich erstmal mit wxPython auseinander setzen...
Funktioniert das auch ohne Adobe Reader? Was nutzt wxPython denn dafür?
skypa hat geschrieben:Python bindings zu poppler? Kannst mir das kurz erläutern, versteh rein Bahnhof :lol:
Poppler ist der Rendering-Code von `xpdf` der auch von `Evince` unter GNOME verwendet wird um PDFs anzuzeigen. Mit den Python-Bindings könntest du so deinen eigenen PDF-Betrachter schreiben.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Leonidas hat geschrieben:
skypa hat geschrieben:Hm verdammte Tat, nun muss ich wohl mich erstmal mit wxPython auseinander setzen...
Funktioniert das auch ohne Adobe Reader? Was nutzt wxPython denn dafür?
Hallo!

@Leonidas: Es nutzt das *aktuell* in Windows für PDF registrierte ActivcX-Control. Das ist normalerweise der Acrobat-Reader, aber bei mir ist das im Moment der Foxit-Reader http://www.foxitsoftware.com/.

@skypa: So schwer ist das gar nicht:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-

import wx
from wx.lib.pdfwin import PDFWindow

PDF_FILE1 = r"J:\Dokumente und Einstellungen\Gerold\Desktop\LED 5mm.pdf"
PDF_FILE2 = r"J:\Dokumente und Einstellungen\Gerold\Desktop\Python Magazine 2007-10.pdf"

wx.SetDefaultPyEncoding("iso-8859-15")


class MyFrame(wx.Frame):
    
    def __init__(
        self, parent = None, title = "Example", size = wx.Size(550, 420)
    ):
        wx.Frame.__init__(self, parent, -1, title, size = size)
        
        panel = wx.Panel(self)
        
        vbox_main = wx.BoxSizer(wx.VERTICAL)
        panel.SetSizer(vbox_main)
        
        hbox = wx.BoxSizer(wx.HORIZONTAL)
        vbox_main.Add(hbox, 1, wx.EXPAND | wx.ALL, 5)
        
        pdf1 = PDFWindow(panel, style=wx.SUNKEN_BORDER)
        hbox.Add(pdf1, 1, wx.EXPAND | wx.ALL, 5)
        pdf1.LoadFile(PDF_FILE1)
        
        pdf2 = PDFWindow(panel, style=wx.SUNKEN_BORDER)
        hbox.Add(pdf2, 1, wx.EXPAND | wx.ALL, 5)
        pdf2.LoadFile(PDF_FILE2)


def main():
    """Testing"""
    app = wx.PySimpleApp()
    f = MyFrame()
    f.Center()
    f.Show()
    app.MainLoop()


if __name__ == "__main__":
    main()
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
skypa
User
Beiträge: 97
Registriert: Freitag 5. Januar 2007, 03:13

Wow, merci! Das lass ich mir direkt mal durchn Kopf gehen, hab mir schon Literatur besorgt : "wxPython in Action" (->[URL entfernt]).

Da war leider nix enthalten mit pdf dateien, aber hat sich mit deinem Beispiel wohl erledigt!
Ich paste später dann mal was ich drauß gemacht hab.

Heide!

Edit (Leonidas): URL gelöscht.
ElSids
User
Beiträge: 16
Registriert: Montag 25. Juni 2007, 13:15
Wohnort: Corciano/Italien

Funktioniert leider nicht.

Es öffnet sich der Acrobat-Reader (version 8.0) und zeigt die gewählte Datei.
Gleichzeitig öffnet sich ein (wx.python)Frame mit zwei Panels.

Eins davon bleibt leer, im zweiten taucht eine Fehlermeldung des Internet Explorers (?) auf.

Schlimmer noch als die Internet Explore Meldung ist das Ergebnis, wenn ich versuche, das Beispiel aus der wx.python-Demo durchzuspielen.

Wieder öffnet sich der Acrobat-Reader (im wx.Python Frame geschieht nichts) nur dass der Reader dann hängen bleibt.

Unter Verwendung von: WindowsXP, Acrobat Reader 8.0, Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08)

Kann es sein, dass der Fehler in der Reader-Version liegen könnte (event. zu neu ?)

ElSidS
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

ElSids hat geschrieben:Acrobat Reader 8.0
Hallo ElSidS!

Du hast recht. Mit dem Acrobat Reader 8.0 geht gar nichts mehr. Hoffentlich reagieren die Entwickler von wxWidgets oder wxPython recht schnell darauf.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten