Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Zend Framework with Handwritten Font

I am trying to use the Amatic Font from Google in my PDF File but it gives me an Error like below. Could that be because the Font Type? I have tested with Open Sans and it is working.

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'

I am using this Script for my tests https://github.com/phpmasterdotcom/GeneratingInvoicesWithZendPdf/blob/master/public/invoice.php

like image 916
karadayi Avatar asked Mar 13 '23 09:03

karadayi


1 Answers

What's happening is this: The Zend Framework code in OpenType.php explicitly checks the OS/2 table version of the font. Is it higher than 3, an exception is thrown. Your font has an OS/2 table version of 4 (which is the fifth version, there are at least 6 versions as far as I know).

Unfortunately, recent versions of the ZendPdf module (like here on GitHub) still don't seem to support version 4 or higher. So apart from looking for another pdf generator - that does support version 4 - I fear there's no clean solution.

You could try editing the framework code, but of course that's a bit shady. As an alternative, apparently it should be able to change that version and regenerate the font. See this post on the Tex forum (the post AFTER the accepted answer). If you choose that path, probably you'll find better guidance on that forum.

Sorry I can't offer a better solution, but maybe it helps you understanding what's going on.

like image 54
GertG Avatar answered Mar 18 '23 19:03

GertG