FPDIを使用してFPDFで作成されたPDFに既存のPDF(別の方法で作成された)を追加しようとしています。ほとんどのPDFで検索が機能するようですが、次のエラーが発生します。
FPDF error: Unable to find xref table.
いくつかのテストの結果、1.4以下(Acrobat v5以下)のPDFバージョンを使用すると機能するように見えることがわかりました。ファイルを見ると、PDF形式が異なるためと思われます。
これに対する回避策または解決策はありますか?私はおそらくユーザーによって10000以上のPDFをアップロードしていますが、新しいものもあれば、そうでないものもあります。また、FPDIがなんらかのエラーを引き起こしたり、falseを返したりする代わりに、単に死ぬのも厄介です。
私が今考えることができる唯一の解決策は、PDFファイルの最初の行を解析してバージョンを判別し、機能するバージョンを超えるものだけを追加することです。
編集:
Zend_Pdfでもこれを試しましたが、Zend Frameworkに付属のデモファイルを使用すると、次の結果が得られました。
Fatal error: Uncaught exception 'Zend_Pdf_Exception' with message 'Cross-reference streams are not supported yet.' in /Volumes/Documents/temp/ZendFramework-1.7.7/library/Zend/Pdf/Parser.php:331
Stack trace:
#0 /Volumes/Documents/temp/ZendFramework-1.7.7/library/Zend/Pdf/Parser.php(455): Zend_Pdf_Parser->_loadXRefTable('116')
#1 /Volumes/Documents/temp/ZendFramework-1.7.7/library/Zend/Pdf.php(297): Zend_Pdf_Parser->__construct('/Volumes/Docume...', Object(Zend_Pdf_ElementFactory_Proxy), true)
#2 /Volumes/Documents/temp/ZendFramework-1.7.7/library/Zend/Pdf.php(250): Zend_Pdf->__construct('/Volumes/Docume...', NULL, true)
#3 /Volumes/Documents/temp/ZendFramework-1.7.7/demos/Zend/Pdf/demo.php(37): Zend_Pdf::load('/Volumes/Docume...')
#4 {main}
thrown in /Volumes/Documents/temp/ZendFramework-1.7.7/library/Zend/Pdf/Parser.php on line 331
1.4より大きいPDFを解析することは不可能ですか?