mPDF错误:无法找到外部参照表

时间:2016-04-23 07:07:22

标签: php pdf mpdf

当我尝试上传pdf文件并将每个页面分隔为pdf时,某些pdf文件正在运行,但某些pdf文件显示此错误:

mPDF error: Unable to find xref table -" Maybe a Problem with auto_detect_line_endings"

我的代码:

ini_set('memory_limit', '512M');
$pagecount = Model::count_pages($documentPath.$journalDoc);
for ($i=1; $i<=$pagecount; $i++) {
    $pdf = new mPDF('','Letter',12,'helvetica, sans-serif',200,0,0,20,0,10,'P');
    $pdf->SetImportUse();
    $pdf->SetSourceFile($documentPath.$journalDoc);
    $import_page = $pdf->ImportPage($i);
    $pdf->UseTemplate($import_page);
    $pdf->Output($output_dir.$i.'.pdf', 'F');
}   

3 个答案:

答案 0 :(得分:4)

这可能是由与您正在运行的mPDF不兼容的版本的PDF文件引起的。您通常可以通过回归源PDF文件来解决问题。

例如,对于mPDF v6.0,尝试使用类似Ghostscript的内容将PDF格式降低到最多v1.4。 (旧的.pdf是你的源文件)

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -o new.pdf old.pdf

Ghostscript不会写入正在阅读的文件,所以如果你这样做内联你就必须跳舞;

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -o new.pdf old.pdf; mv -f new.pdf old.pdf

答案 1 :(得分:0)

mPDF正式回购中的FPDI版本非常陈旧。您可以尝试更新为latest version。或者,您只需使用FPDI的正式版FPDF

如果您收到有关“未报告的压缩”的消息,您可以查看FPDI PDF-Parser add-on。请注意,许可证与mPDF不兼容。

答案 2 :(得分:0)

增加这个的长度大小

公共静态 $trailerSearchLength = 5500;

到这里

公共静态 $trailerSearchLength = 500000;

文件位置:vendor\setasign\fpdi\src\PdfParser\CrossReference\CrossReference.php