当我尝试上传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');
}
答案 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