FPDI致命错误:未捕获的异常'异常'消息'无法找到对象(1,0)

时间:2014-11-11 21:33:56

标签: fpdi

我试图用这个简单的代码导入带有php类FPDI的pdf:

require_once("fpdf/fpdf.php");
require_once("fpdi/fpdi.php");
$pdf = new FPDI();
$pdf->setSourceFile('intermedia.pdf');
$tplidx = $pdf->ImportPage(1);
$pdf->AddPage();
$pdf->useTemplate($tplidx,0,0,210);
$pdf->Output();

但是我收到以下错误:

  

警告:explode()[function.explode]:空分隔符。在   第369行/var/catalogo/test_pdf/fpdi/pdf_parser.php

     

致命错误:未捕获的异常'异常'有消息'无法   在预期的位置找到对象(1,0)。'在   /var/catalogo/test_pdf/fpdi/pdf_parser.php:709堆栈跟踪:#0   /var/catalogo/test_pdf/fpdi/pdf_parser.php(268):   pdf_parser-> resolveObject(Array)#1   /var/catalogo/test_pdf/fpdi/pdf_parser.php(208):   pdf_parser-> _readRoot()#2   /var/catalogo/test_pdf/fpdi/fpdi_pdf_parser.php(71):   pdf_parser-> __ construct(' / var / catalogo / t ...')#3   /var/catalogo/test_pdf/fpdi/fpdi.php(128):   fpdi_pdf_parser-> __ construct(' / var / catalogo / t ...')#4   /var/catalogo/test_pdf/fpdi/fpdi.php(108):   FPDI-> _getPdfParser(' / var / catalogo / t ...')#5   /var/catalogo/test_pdf/index.php(5):   FPDI-> setSourceFile(' intermedia.pdf')#6 {main}抛出   第709行/var/catalogo/test_pdf/fpdi/pdf_parser.php

这是应该导入的文件: http://catalogo.selectaspa.it/test_pdf/intermedia.pdf

1 个答案:

答案 0 :(得分:0)

好的,这个文件的交叉引用完全被破坏了。我刚刚在爆炸时捕获了“警告”,但最后你将不得不重新保存文件,例如Acrobat在将其传递给FPDI之前进行修复。

您可以将第362行附近的pdf_parser.php更改为:

// get Line-Ending
$found = preg_match_all("/(\r\n|\n|\r)/", substr($data, 0, 100), $m); // check the first 100 bytes for line breaks
if ($found === 0) {
    throw new Exception('Xref table seems to be corrupted.');
}

可以在单独的FPDI PDF-Parser中使用相同的修复程序,这样您也可以阅读此文档。