UTF-8 und FPDF

28. Jan 2008

Wer in CakePHP gerne PDF on the fly erstellt, hat sich mit Sicherheit schon einmal mit FPDF auseinandergesetzt. Solang man sich im deutschen Sprachraum befindet bzw. man kein Ajax einsetzt, ist dies auch eine schöne Erweiterung. Sobald man allerdings mit einer UTF-8-kodierten PHP Datei versucht ein PDF mittels FPDF zu erstellen, findet man sich in einem unschönen Haufen verhunzter Umlaute und Sonderzeichen wieder. Um nun zumindest einen Großteil ohne große Probleme konvertieren zu können (momentan macht das Eurozeichen noch etwas Probleme) reicht schon eine Zeile in die fpdf.php einzusetzen:
fpdf.php (Zeile 662)

  1. function Cell($w,$h=0,$txt=,$border=0,$ln=0,$align=,$fill=0,$link=)
  2. {
  3.         $txt = utf8_decode($txt);

Da alle wichtigen PDF Elemente auf der Funktion Cell basieren, wird nun jeder eingegebene UTF-8 Text in das “normale” FPDF Format konvertiert und richtig ausgegeben.

Kategorie: CakePHP, Tipps | 3 Kommentare »


Veröffentlicht am Montag, den 28. Januar 2008 um 15:04 Uhr veröffentlicht

Du kannst einen Kommentar schreiben, oder einen Trackback auf deiner Seite einrichten.

3 Reaktionen zu “UTF-8 und FPDF”

 

  1. pdaether Am 29. Januar 2008 um 15:24 Uhr

    Besser wäre es FPDF komplett durch TCPDF ( http://tcpdf.sourceforge.net/ ) zu ersetzen.
    Das Projekt unterstützt UTF-8 komplett und die API ist identisch zu der von FPDF, so dass der Austausch selbst bei bestehenden Projekte recht reibungslos funktioniert.

  2. Thomas Bensler Am 25. März 2009 um 11:10 Uhr

    Schöner hack! Mit fpdf zufrieden gewesen, bis auf Umlaute Nervkram. ufpdf und tcpdf auf die Schnelle nicht besser zum Rennen gebracht … und dann tut es mit so einem kleinen hack. Vielen Dank!

  3. Claus Reibenstein Am 6. April 2009 um 15:01 Uhr

    Besser wäre wohl

    $txt = iconv(‘utf8′, ‘cp1252′, $txt);

    Dann klappt’s auch mit dem €.

Einen Kommentar schreiben

Du mußt angemeldet sein, um kommentieren zu können.