2009-03-01 14 views
3

J'ai des problèmes en utilisant le PDFZend Framework génération PDF problème unicode

Zend Framework Quand je crée le fichier PDF que je dois utiliser UTF-8 comme encodage. C'est le code que j'utilise pour générer un fichier pdf simple. Je me trompe toujours. Au lieu de voir « FAKTURA » dans le fichier pdf, il me donne « faktų » lieu de voir « Dodávateľ: » dans le fichier pdf, il me donne « Dodáva »

$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'); 

J'essayé de charger la police à partir de Windows répertoire

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

Mais il me donne l'erreur:

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

il est vraiment me rend fou et je crois que certains d'entre vous aurait peu des notes pour moi :) Résoudre l'erreur serait la meilleure solution ...

Merci beaucoup à l'avance

Répondre

1

Avez-vous enregistré le fichier source php en UTF-8?

+0

Oui, la source est UTF-8 Je me promenais peut-être que le fichier PDF lui-même devrait également être enregistré en tant que UTF-8, mais Zend Framework ne supporte pas ce type de sauvegarde. Je sauvegarde le fichier pdf de cette façon $ pdf-> save ('faktury /'.$ invoice.'. Pdf '); –

+0

Je ne pense pas que vous devez enregistrer le pdf comme UTF-8 .. pdf est un format binaire - Je suis assez sûr qu'il gère ces choses en interne. Peut-être que vous avez besoin d'avoir l'extension iconv installé et activé (Juste une conjecture sauvage) – troelskn

+0

iconv a été correctement installé ... Je ne sais pas où chercher une solution plus loin .. des indices? –

1

essayez d'utiliser utf8_decode()

Par exemple:

$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');