2016-05-07 77 views
2

我想在我的PDF文件中使用谷歌的Amatic Font,但它給了我一個像下面的錯誤。那可能是因爲字體類型?我已經用Open Sans進行了測試,它正在工作。Zend框架與手寫字體

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

回答

3

發生了什麼事是這樣的:在OpenType.php Zend框架的代碼明確檢查字體的OS/2表版本。它是否高於3,是一個例外。你的字體的OS/2表格版本是4(這是第五個版本,據我所知至少有6個版本)。

不幸的是,最近版本的ZendPdf模塊(如here on GitHub)似乎仍然不支持版本4或更高版本。因此,除了尋找另一個pdf生成器 - 支持版本4 - 我擔心沒有乾淨的解決方案。

你可以嘗試編輯框架代碼,但當然這有點陰暗。作爲替代方案,顯然它應該能夠更改該版本並重新生成字體。請參閱this post on the Tex forum(接受答案後的帖子)。如果你選擇這條路,可能你會在該論壇上找到更好的指導。

對不起,我不能提供更好的解決方案,但也許它可以幫助你瞭解發生了什麼。