Zend Framework PDF проблема с созданием Unicode - PullRequest
3 голосов
/ 01 марта 2009

У меня проблемы с использованием Zend Framework PDF

Когда я создаю файл PDF, мне нужно использовать UTF-8 в качестве кодировки. Это код, который я использую для создания простого файла PDF. Я всегда неправильно отображаю это. Вместо того, чтобы видеть «Фактура» в PDF-файле, он дает мне «Факту» Вместо того, чтобы видеть «Dodávateľ:» в файле PDF, он дает мне «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');

Итак, я попытался загрузить шрифт из каталога Windows

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

Но это дает мне ошибку:

Неустранимая ошибка: необработанное исключение Zend_Pdf_Exception с сообщением «Недостаточно данных для чтения 2 байта»

Это действительно сводит меня с ума, и я верю, что у некоторых из вас есть небольшие подсказки для меня :) Решение ошибки будет лучшим решением ...

Большое спасибо заранее

Ответы [ 3 ]

1 голос
/ 11 марта 2009

попробуйте использовать utf8_decode ()

Например:

$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');
1 голос
/ 03 мая 2009

Функциональность Zend pdf еще не очень сложна. http://www.starmind.com мы используем tcpdf , основанный на fpdf. оба бесплатны.

1 голос
/ 02 марта 2009

Вы сохранили исходный файл php как UTF-8?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...