我在使用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个字节”
这真让我疯狂,我相信你们中的一些人对我没什么好处:) 解决错误将是最好的解决方案......
提前多多感谢
答案 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。两者都可以免费使用。