Seite 1 von 1

Fehlermeldung mit FPDF

Verfasst: Samstag 15. März 2014, 09:28
von Peter1977
Hallo,

Ich nutze FPDF https://code.google.com/p/pyfpdf/ zum erstellen eines PDF Dokumentes mit Python.

jetzt will ich ein logo einfügen was das folgenden Fehler Produziert
Traceback (most recent call last):
File "Z:\ProgrammEntwicklung\Python3.3\tk_fraese\pdf_bestellung_offen.py", line 33, in <module>
pdf.image('logo.png',20,20,33,33)
File "Z:\ProgrammEntwicklung\Python3.3\tk_fraese\fpdf\fpdf.py", line 896, in image
info=self._parsepng(name)
File "Z:\ProgrammEntwicklung\Python3.3\tk_fraese\fpdf\fpdf.py", line 1642, in _parsepng
self.error('Not a PNG file: '+name)
File "Z:\ProgrammEntwicklung\Python3.3\tk_fraese\fpdf\fpdf.py", line 221, in error
raise RuntimeError('FPDF error: '+msg)
RuntimeError: FPDF error: Not a PNG file: logo.png
das Logo ist eine PNG Datei und kann auch mit GIMP normal geöffnet und angesehen werden.

hier der Programm Code

Code: Alles auswählen

from fpdf import FPDF
import time
import os


class PDF(FPDF):
    def header(this):
        this.image('logo.png',20,20,33,33) # Logo einfügen
        this.set_font('Courier','B',16)
        this.text(15,15,'Bestellung ' + time.strftime("%d.%m.%Y"))
        this.set_author('Verwaltung')
        this.set_title('Bestellung')

        # Tabellen Spalten Überschriften setzen
        this.set_font('Courier','B',10)
        this.text(10,30,"Menge")
        this.text(25,30,"Ein.")
        this.text(40,30,"Bezeichnung")
        this.text(110,30,"Artikel")
        this.text(110,35,"Bestell")
        this.text(175,30,"Hersteller")
        this.text(175,35,"Lieferant")
        this.text(250,30,"Kostenstelle")
        this.line(10,36,292,36) # Zeile Begin,Linke Höhe,Zeile ende,Rechte Höhe
        
    def footer(this):
        this.set_font('Courier','',8)
        this.text(15,200,'Verwaltung Fräse - Free FPDF für Python')
        this.text(250,200,time.strftime("%d.%m.%Y %H:%M:%S"))

pdf=PDF('L','mm','A4')
pdf.compress=False
pdf.add_page()
pdf.set_font('Courier','',13)


pdf.output('bestellung.pdf')
os.startfile('bestellung.pdf')
Kann mit vieleicht jemand einen Tip geben?
verwendet wird Python 3.3.2 und FPDF 1.7
PDf erstellung ohne "Image" funktioniert ohne Probleme

Danke im Voraus

Peter

Re: Fehlermeldung mit FPDF

Verfasst: Samstag 15. März 2014, 10:52
von BlackJack
@Peter1977: Wenn man mal in den Quelltext von der Funktion `_parsepng()`-Methode schaut, dann sieht man das diese Ausnahme ausgelöst wird, wenn die Signatur am Anfang der PNG-Datei nicht stimmt. Und dann ist das mit ziemlicher Sicherheit keine PNG-Datei. Kann es sein, dass Du ein anderes Grafikformat mit der Dateiendung PNG gespeichert hast?

Python 3 Unterstützung wird auf der Webseite als „experimentell” bezeichnet, vielleicht ist die Ursache auch dort zu suchen.

Re: Fehlermeldung mit FPDF

Verfasst: Samstag 15. März 2014, 11:04
von Peter1977
Die PNG die verwenden will ist eine Umgewandelte JPG Datei.

Allerdings auch die Original PNG die "Mitgeliefert" wird funktioniert nicht.
ist wahrscheinlich das dies mit Python 3 wahrscheinlich noch nicht einwandfrei funktioniert.

Re: Fehlermeldung mit FPDF

Verfasst: Samstag 15. März 2014, 11:10
von Sirius3
@Peter1977: wenn Du mit Umwandeln Umbenennen meinst, dann hast Du sicherlich keine gültige PNG-Datei. Gimp ist es auch völlig egal, welche Endung die Datei hat, wenn Du explizit das Format angibst.

Re: Fehlermeldung mit FPDF

Verfasst: Samstag 15. März 2014, 11:32
von BlackJack
@Peter1977: Wie hast Du das überhaupt installiert? Hast Du die Anleitung auf der Projektseite befolgt?

Re: Fehlermeldung mit FPDF

Verfasst: Samstag 15. März 2014, 11:36
von Peter1977
nicht umbenannt sondern jpg aufgerufen und unter "speichern unter" als png gespeichert.

[EDIT]von "nicht nur umbenannt sondern jpg aufgerufen und unter "speichern unter" als png gespeichert. " das "nur" entfernt[/edit]

Re: Fehlermeldung mit FPDF

Verfasst: Samstag 15. März 2014, 11:54
von Peter1977
@BlackJack:

Die fpdf-1.7.hg.zip Datei heruntergeladen und nach Anleitung nach Python 3.3 umgewandelt und mittels Import die die fpdf.py ins Skript eingebunden.

Die PDF wird ja erstellt ohne Probleme es ist gerade mal wenn eine Grafik eingebunden wird das der Fehler erzeugt wird.

mfg Peter