Zend_Pdf中没有显示Unicode字符?

时间:2009-06-23 12:04:06

标签: pdf unicode utf-8

require_once 'Zend/Pdf.php';
$pdf = new Zend_Pdf();
$page = $pdf->newPage(Zend_Pdf_Page::SIZE_A4);
$pdf->pages[] = $page;
$page->setFont(Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA), 10);
$page->drawText("Bogus Russian: это фигня", 100, 400, "UTF-8");
$pdfData = $pdf->render();
header("Content-Disposition: inline; filename=output.pdf"); 
header("Content-type: application/x-pdf"); 
echo $pdfData;

我无法让俄罗斯人物出现!我设法让它们显示为:

Russian: ???????????
Russian: ÐоммÑнÐ
Russian: 
and
Russian: ><

2 个答案:

答案 0 :(得分:0)

也许这会回答你的问题:

How to generate pdf files _with_ utf-8 multibyte characters using Zend Framework

从外观来看,默认字体没有所有utf-8字符......你可能需要加载外部TTF ......

答案 1 :(得分:0)

这篇文章解释得更好: How to generate pdf files _with_ utf-8 multibyte characters using Zend Framework

本质上,内置字体(例如Zend_Pdf_Font :: FONT_HELVETICA)不包含足够的信息,因此您需要附加带有pdf的字体ttf文件,并将脚本设置为使用该字体。

$font = Zend_Pdf_Font::fontWithPath('/Library/Fonts/Times.ttf');
$pdfPage->setFont($font, 36);