Я пытаюсь добавить существующий PDF (созданный иначе) в PDF, созданный с использованием FPDF с использованием FPDI. Кажется, для большинства PDF-файлов работает find, но я получаю следующую ошибку:
FPDF error: Unable to find xref table.
После некоторого тестирования я выяснил, что если я использую PDF-версию 1.4 или ниже (Acrobat v5 или ниже), это, похоже, работает. Глядя на файл, он кажется из-за другого формата PDF.
Есть ли обходной путь или решение этой проблемы? У меня, наверное, более 10 000 PDF-файлов, загруженных пользователями, некоторые из них работают, некоторые нет. Также раздражает, что FPDI просто умирает, а не вызывает какую-то ошибку или даже возвращает false
Единственное решение, о котором я могу подумать сейчас, - это проанализировать первую строку файла PDF, чтобы определить версию, и добавить только те из них, которые будут работать над версиями.
Edit:
Я также попробовал это в 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
Разве невозможно проанализировать PDF-файлы больше, чем 1,4?