PHP Blogger

Startseite Schreib mir ne Mail! RSS Abo Webnews

fPDF GIF Support und Font Konverter

Nicht jedes Projekt setzt auf ein Framework und nutzt sinnvollerweise deren Funktionen - z.B. zum Generieren von PDF Dokumenten. Wer nach PDF Generatoren für PHP sucht, wird schnell fündig und landet bei fPDF oder z.B. dem PEAR Package.

Gerade ältere Projekte werden sicherlich auf die bewährte fPDF-Bibliothek setzen, wenn es darum geht, PDF Dateien dynamisch zu generieren. Eine Schwachstelle von fPDF ist sicherlich der fehlende GIF Support und das umständliche Einbetten von Schriften.

Für die Erweiterung eines etwas in die Jahre gekommenen Projektes musste ich diese Woche ein wenig in die Trickkiste greifen: GIF Grafiken sollten eingebettet werden. Da hilft nur ein kleiner Workaround: JPEGs und PNG-Grafiken werden unterstützt, also was liegt näher, als eine Zwangskonvertierung?

Glücklicherweise muss man sagen, dass der fPDF Entwickler so vorausschauend gearbeitet hat und sozusagen “File-Plugins” erlaubt. Bevor man also die Meldung “Unsupported image type: gif” präsentiert bekommt, wird abgefragt, ob es eine Klassenmethode mit dem Namen “_parse_gif” gibt.

Witzigerweise gibt es FPDF-Addons für “WMF”, “SVG”, “EPS” und sogar “BMP”-Dateien. GIF fehlt bislang oder wurde schlicht von niemand veröffentlicht. Klar, hier könnte man ja gleich auf PNG setzen, aber manchmal muss man halt auf bereits bestehende Daten zugreifen ;)

Das fPDF-Addon für fPDF-Version 1.53 und niedriger findet ihr unter dieser Adresse zum Download, vielleicht ist es ja für den ein oder anderen nützlich:

http://www.phpblogger.net/download/fpdf_gif_support.class.phps

Font-Konverter

Wer Schriftarten in fPDF einbetten möchte, muss diese zuvor umwandeln. Benötigt werden die Dateien mit den Endungen “php” und “z”. Wer sich die Arbeit auf der Konsole sparen möchte, sollte mal einen Blick auf diesen Konverter werfen: http://fpdf.fruit-lab.de/ (Vielen Dank an Tim Lochmüller, meinen Namensvetter, für dieses praktische Tool)

Kleiner Nachtrag am Ende

Wer einen Blick in die Download-Liste auf der offiziellen Projektseite wirft, wird sehen, das der Projektautor nach über 3 Jahren Release-Pause im September diesen Jahres das Release 1.6 bereitgestellt hat. Offensichtlich ist das bis zu den Betreibern der Sprachvarianten noch nicht vorgedrungen ;)

Ein Blick ins Changelog:

  • GIF-Grafik Support. (Jubel!)
  • Grafiken veranlassen Seitenumbrüche.
  • Mehrere Seitenformate können in ein und demselben PDF verwendet werden.
  • Dokument-Eigentschaften (Autor, Ersteller, Stichworte, Betreff und Titel) können in UTF-8 angegeben werden.
  • Hinzufügen von HTTP Headern um Probleme mit dem Internet Explorer zu vermeiden.
  • Bugfix: Wenn eine PNG-Datei über eine URL nachgeladen wurde, kam es ab und zu zu einem Fehler.
  • Bugfix: Automatische Seitenumbrüche in Header()-Funktion verursachen keine unendlichen Schleifen mehr.
  • Bugfix: Entfernen von Warnungen in aktuellen PHP Versionen.

Ähnliche Artikel:

  1. Slimbox-Update: Version 1.64 (deutsch)
  2. phpMyAdmin Update 2.11.1

David Thalmann meint dazu:

11. November 2008 um 20:42

Ich hab da was besseres, was auf FPDF aufbaut (mittlerweile praktisch voll neu geschrieben) und UTF-8 komplett unterstützt: http://www.tcpdf.org Imho besser als FPDF, war ja jetzt lange funkstille, aber TCPDF bringen fast täglich (!) (letzte release vom 6. November) updates und bugfixes raus.

timi meint dazu:

11. November 2008 um 21:30

Hi David, gut zu wissen, vielen Dank für den Link - das zieh ich mir mal rein…

Frank meint dazu:

11. November 2008 um 22:13

Hi,
ich glaube der fehlende GIF-Support war lediglich in diesem komischen Rechte-Streit/Problem/Krieg begründet. Da hatte doch irgendwer seine Finger auf dem Format….

timi meint dazu:

12. November 2008 um 08:23

Das kann natürlich sein, das Update wäre aber natürlich schon früher möglich gewesen, wenn bedenkt, dass das Patent in Deutschland 2004 ausgelaufen ist - in den USA sogar schon 2003.

Dabei gings übrigens nicht direkt um das GIF-Format, sondern vielmehr um die Komprimierung LZW, auf die es setzt.

Chris F. Znajomi meint dazu:

26. November 2008 um 09:19

@timi:
Das LZW Verfahren für die Komprimierung war bis dato im festen Griff der Firma Unisys. Die wollten mit der ganzen Patentgeschichte Geld machen. Und es wäre nicht die erste Firma gewesen, die es fast geschafft hätte.
Ich denke gerade an teile des Linux-Kernels der angeblich patentiert war.

Donny meint dazu:

13. Dezember 2008 um 04:36

Leider lässt sich die neue Version von FPDF nicht mit der PHP-Installation vom Oracle HTTP Server nutzen:
“This version of PHP is not supported”

Michael Rölle meint dazu:

5. Februar 2009 um 01:39

Ich arbeite auch gerade an einem Projekt bei dem ich HTML-Tabellen und Text in ein PDF umwandeln soll. Worauf sollte ich da am Besten setzen? Bin dankbar für einen guten Tipp.

timi meint dazu:

13. März 2009 um 13:58

Hi Michael, probier mal tcpdf aus, das ist etwas stabiler als fpdf…

RSS für Kommentare zu diesem Artikel · TrackBack URI

Schreib Deine Meinung