gpt4 book ai didi

php - 如何使用 Zend Framework 生成 _with_ utf-8 多字节字符的 pdf 文件

转载 作者:可可西里 更新时间:2023-11-01 13:42:24 25 4
gpt4 key购买 nike

Zend Framework Zend_Pdf 类有一个“小”问题。从生成的 pdf 文件中去除多字节字符。例如。当我写 aąbcčdeę 时,它变成了 abcd,并去掉了立陶宛语字母。

我不确定这是 Zend_Pdf 问题还是一般的 php 问题。

源文本以 utf-8 编码,执行该工作的 php 源文件也是如此。

预先感谢您的帮助;)

附言我运行 Zend Framework v. 1.6 并使用 FONT_TIMES_BOLD 字体。 FONT_TIMES_ROMAN 确实有效

最佳答案

Zend_Pdf 在 Zend Framework 1.5 版本中支持 UTF-8。但是,标准 PDF 字体仅支持 Latin1 字符集。这意味着您不能使用 Zend_Pdf_Font::FONT_TIMES_BOLD 或任何其他“内置”字体。要使用特殊字符,您必须加载另一种包含来自其他字符集的字符的 TTF 字体。

我使用 Mac OS X,所以我尝试了以下代码,它生成了一个包含正确字符的 PDF 文档。

$pdfDoc = new Zend_Pdf();
$pdfPage = $pdfDoc->newPage(Zend_Pdf_Page::SIZE_LETTER);

// load TTF font from Mac system library
$font = Zend_Pdf_Font::fontWithPath('/Library/Fonts/Times New Roman Bold.ttf');
$pdfPage->setFont($font, 36);

$unicodeString = 'aąbcčdeę';
$pdfPage->drawText($unicodeString, 72, 720, 'UTF-8');

$pdfDoc->pages[] = $pdfPage;
$pdfDoc->save('utf8.pdf');

另请参阅此错误日志:http://framework.zend.com/issues/browse/ZF-3649

关于php - 如何使用 Zend Framework 生成 _with_ utf-8 多字节字符的 pdf 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/173503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com