【问题标题】:mPDF error: Unable to find xref tablemPDF 错误:找不到外部参照表
【发布时间】:2016-08-16 21:49:22
【问题描述】:

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

【问题讨论】:

    标签: php pdf mpdf


    【解决方案1】:

    增加这个的长度大小

    公共静态 $trailerSearchLength = 5500;

    到这里

    公共静态 $trailerSearchLength = 500000;

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

    【讨论】:

      【解决方案2】:

      这可能是由与 mPDF 不兼容的 PDF 文件版本引起的。您最好回归 PDF 文件版本。
      如果您从文件中提取页面,您可能使用了 Adob​​e 软件。 只需在Linux平台上使用pdftk或pdfchain即可解决问题。

      【讨论】:

        【解决方案3】:

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

        例如,对于 mPDF v6.0,请尝试使用 Ghostscript 之类的工具将您的 PDF 降到最高 v1.4。 (old.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

        【讨论】:

          【解决方案4】:

          mPDF 官方 repo 中的 FPDI 版本非常旧。您可以尝试更新到latest version。或者你直接使用FPDI的官方版本,它使用FPDF

          如果您收到有关“不支持压缩”的消息,您可以查看FPDI PDF-Parser add-on。请注意,mPDF 存在许可证不兼容问题。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-03-10
            • 2010-12-30
            • 2016-07-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-08-16
            • 1970-01-01
            相关资源
            最近更新 更多