Seite 1 von 1

Pisa erzeugt ein kaputtes PDF

Verfasst: Samstag 19. September 2009, 22:33
von Silmaril
Hallo

Ich möchte mit dem Python-Modul pisa bestimmte Html-Strings in ein PDF umwandeln.
(System: Kubuntu 9.04 mit Python 2.6 und pisa 3.0.32

Leider klappt noch nicht einmal das Beispiel aus dessen Doku:

Code: Alles auswählen

import ho.pisa as pisa

def helloWorld():
    filename = "test.pdf"
    pdf = pisa.CreatePDF("Hello <strong>World</strong>", file(filename, "wb"))
    if not pdf.err:
        pisa.startViewer(filename)

if __name__=="__main__":
    pisa.showLogging()
    helloWorld()
Wenn ich das ausführe, kommen zwei Warnings auf der Shell:
Warning (from warnings module):
File "/var/lib/python-support/python2.6/pyPdf/pdf.py", line 52
from sets import ImmutableSet
DeprecationWarning: the sets module is deprecated

Warning (from warnings module):
File "/usr/local/lib/python2.6/dist-packages/html5lib-0.11.1-py2.6.egg/html5lib/inputstream.py", line 367
DeprecationWarning: object.__init__() takes no parameters
Das erste kann ich mir ja auch als Anfänger noch erklären. Aber das zweite?

Komischerweise bekomme ich eine anstandsloses PDF-File, wenn ich pisa als Konsolenkommando benutze. Dort werden mir aber auch die zwei Warnings ausgegeben.

Kann mir jemand weiterhelfen?
Danke

Verfasst: Samstag 19. September 2009, 22:57
von Silmaril
Also manchmal hilft es auch schon einfach nur eine vernünftige Frage zu formulieren, um dem Problem Herr zu werden. Ich versuche mich schon 3 Tage an diesen Problem aber nach meinen Posting dauerte es gerade einmal 3 Minuten und ich hatte die Lösung.

Ich habe der CreatePDF-Funktion ja ein fileobjekt übergeben. Also habe ich nochmal genauer in die Doku gesehen und siehe da: die Funktion schließt die Datei nicht wieder. Also muss das ich machen :oops:

Dann bleibt die Frage, warum die ein nichtfunktionierenes Beispiel in der Doku haben. :evil:

Also hier nochmal richtig:

Code: Alles auswählen

import ho.pisa as pisa
def helloWorld():
    f = file("test2.pdf", "wb")
    pdf = pisa.CreatePDF("Hello this <strong>World</strong>", f)
    print "hallo"
    f.close()
    if not pdf.err:
        pisa.startViewer("test2.pdf")

if __name__=="__main__":
    pisa.showLogging()
    helloWorld()
(Die Warnings bleiben trotzdem)

Verfasst: Samstag 19. September 2009, 23:05
von cofi
Warnungen sind Warnungen, keine Fehler. Die zweite Meldung ist ein Fehler in der html5lib - nein dass ist kein Widerspruch, wenn die ``__ini__`` Methode von ``object`` durch die Bibliothek mit Parametern gefuettert wird, koennen diese Daten eventuell verloren gehen.

Willst du es unterdruecken: http://www.python-forum.de/topic-19834.html