Pisa erzeugt ein kaputtes PDF

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
Silmaril
User
Beiträge: 55
Registriert: Sonntag 21. September 2008, 17:10
Wohnort: Franken

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
Lebe jeden Tag, als wäre es Absicht.
Silmaril
User
Beiträge: 55
Registriert: Sonntag 21. September 2008, 17:10
Wohnort: Franken

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)
Lebe jeden Tag, als wäre es Absicht.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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
Antworten