Zend Framework PDF生成unicode问题

时间:2009-03-01 20:13:14

标签: php zend-framework pdf unicode utf-8

我在使用Zend Framework的PDF时遇到了麻烦

当我创建PDF文件时,我需要使用UTF-8作为编码。 这是我用来生成简单pdf文件的代码。 我总是把这个错误显示出来。 它没有在pdf文件中看到'Faktúra',而是给了我'Faktú' 而不是在pdf文件中看到'Dodávate:',它给了我'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 个答案:

答案 0 :(得分:1)

您是否将php源文件保存为UTF-8?

答案 1 :(得分:1)

尝试使用 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');

答案 2 :(得分:1)

Zend pdf功能还不是很复杂。在http://www.starmind.com上,我们使用基于fpdf的tcpdf。两者都可以免费使用。