2009-03-01 10 views
3

Ich habe Probleme mit Zend Framework PDFZend Framework PDF-Generierung Unicode-Ausgabe

Wenn ich PDF-Datei zu erstellen Ich brauche UTF-8 als Kodierung zu verwenden. Dies ist der Code, den ich verwende, um eine einfache PDF-Datei zu erzeugen. Ich bekomme immer das falsch angezeigt. Statt ‚Faktúra‘ in pdf-Datei zu sehen, es gibt mir ‚faktu‘ Statt ‚dodavatel:‘ des Sehens in pdf-Datei, es mir ‚Dodáva‘ gibt

$pdf = new Zend_Pdf();  
$pdf->pages[] = ($page1 = $pdf->newPage('A4'));  
$font = Zend_Pdf_Font::fontWithPath('C:\WINDOWS\Fonts\TIMES.TTF');  
$page1->setFont($font, 20);  
$page1->drawText('Faktúra', 40, 803, 'UTF-8');  
$page1->drawText('Dodaváteľ:', $width_left, $height, 'UTF-8'); 

Also habe ich versucht Schriftart von Windows zu laden

Verzeichnis
$font = Zend_Pdf_Font::fontWithPath('C:\WINDOWS\Fonts\TIMES.TTF'); 

Aber es gibt mir den Fehler:

Fatal error: Uncaught exception 'Zend_Pdf_Exception' with message 'Insufficient data to read 2 bytes'

es ist wirklich macht mich verrückt und ich glaube, einige von Ihnen wenig Hinweise für mich haben würde :) die Fehler lösen wäre die beste Lösung sein ...

Vielen Dank im Voraus

Antwort

1

Haben Sie die PHP-Quelldatei als UTF-8 speichern?

+0

Ja, die Quelle ist wie UTF-8 Ich war wandern möglicherweise die PDF-Datei selbst sollte auch als UTF-8 gespeichert werden, aber Zend Framework unterstützt diese Art der Speicherung nicht. Ich spare die pdf-Datei auf diese Weise $ pdf-> speichern ('Faktury /'. $ Rechnung. '. Pdf'); –

+0

Ich glaube nicht, dass Sie das PDF als UTF-8 speichern müssen. Pdf ist ein binäres Format - ich bin ziemlich sicher, dass es das intern erledigt. Vielleicht müssen Sie die iconv Extension installiert und aktiviert haben (nur eine wilde Vermutung) – troelskn

+0

iconv wurde korrekt installiert ... Ich weiß nicht, wo für die Lösung weiter zu suchen .. irgendwelche Hinweise? –

1

versuchen utf8_decode mit()

Zum Beispiel:

$pdf = new Zend_Pdf();  
$pdf->pages[] = ($page1 = $pdf->newPage('A4'));  
$font = Zend_Pdf_Font::fontWithPath('C:\WINDOWS\Fonts\TIMES.TTF');  
$page1->setFont($font, 20);  
$page1->drawText(utf8_decode('Faktúra'), 40, 803, 'UTF-8');  
$page1->drawText(utf8_decode('Dodaváteľ:'), $width_left, $height, 'UTF-8');