带手写字体的 Zend Framework

Zend Framework with Handwritten Font

我试图在我的 PDF 文件中使用 Google 中的 Amatic Font,但它给我一个如下所示的错误。那可能是因为字体类型吗?我已经使用 Open Sans 进行了测试,它正在运行。

AH01071: Got error 'PHP message: PHP Fatal error: Uncaught exception 'Zend_Pdf_Exception' with message 'Unable to read version 4 table' in /var/www/vhosts/httpdocs/main/zend/library/Zend/Pdf/FileParser/Font/OpenType.php:555\nStack trace:\n#0 /var/www/vhosts/httpdocs/main/zend/library/Zend/Pdf/FileParser/Font/OpenType.php(121): Zend_Pdf_FileParser_Font_OpenType->_parseOs2Table()\n#1 /var/www/vhosts/httpdocs/main/zend/library/Zend/Pdf/FileParser/Font/OpenType/TrueType.php(83): Zend_Pdf_FileParser_Font_OpenType->parse()\n#2 /var/www/vhosts/httpdocs/main/zend/library/Zend/Pdf/Font.php(701): Zend_Pdf_FileParser_Font_OpenType_TrueType->parse()\n#3 /var/www/vhosts/httpdocs/main/zend/library/Zend/Pdf/Font.php(615): Zend_Pdf_Font::_extractTrueTypeFont(Object(Zend_Pdf_FileParserDataSource_File), 0)\n#4 /var/www/vhosts/httpdocs/main/zend/invoice.php(27): Zend_Pdf_Font::fontWithPath('/var/www/vhosts...')\n#5 {main}\n\nNext exception 'Zend_Pdf_Exception' wi...\n'

我正在使用这个脚本进行测试https://github.com/phpmasterdotcom/GeneratingInvoicesWithZendPdf/blob/master/public/invoice.php

发生的事情是这样的:OpenType.php 中的 Zend Framework 代码明确检查字体的 OS/2 table 版本。是否高于 3,则抛出异常。你的字体有一个 OS/2 table 版本 4(这是第五个版本,据我所知至少有 6 个版本)。

不幸的是,最新版本的 ZendPdf 模块(如 here on GitHub)似乎仍然不支持版本 4 或更高版本。因此,除了寻找另一个支持版本 4 的 pdf 生成器之外,我担心没有干净的解决方案。

您可以尝试编辑框架代码,但这当然有点可疑。作为替代方案,显然它应该能够更改该版本并重新生成字体。请参阅 this post on the Tex forum(接受答案后的 post)。如果您选择这条道路,您可能会在该论坛上找到更好的指导。

抱歉,我无法提供更好的解决方案,但也许它可以帮助您了解正在发生的事情。