从外部 PDF 文件导入页面无法正常显示

Import page from external PDF file can't display properly

PDF 文件比正常宽度大。

$pagecount = $mpdf->SetSourceFile($pdfurl);
for($x=0;$x<$pagecount;$x++){
   $tplId = $mpdf->ImportPage(($x+1));
    $mpdf->UseTemplate($tplId);
    $mpdf->AddPage();
}

大部分PDF显示都很好,但宽度较大,只显示了一部分。

您的代码中存在几个问题:

  1. 您在添加页面之前调用了 UseTemplate()。
  2. A​​ddPage() 方法以在构造函数中定义的默认页面大小添加页面。

因此您必须将脚本更改为:

$pageCount = $mpdf->SetSourceFile($pdfurl);
for($pageNo = 1; $pageNo <= $pageCount ; $pageNo++){
    $tplId = $mpdf->ImportPage($pageNo);
    $size = $mpdf->GetTemplateSize($pageNo);
    $mpdf->AddPageByArray([
        'orientation' => $size['w'] > $size['h'] ? 'L' : 'P',
        'newformat' => [$size['w'], $size['h']]
    ]);
    $mpdf->UseTemplate($tplId);
}

谢谢@Jan.Your 代码不能完美地工作 me.But 给我指出正确的方向。

for($pageNo = 1; $pageNo <= $pageCount ; $pageNo++){
    $tplId = $mpdf->ImportPage($pageNo);
    $size = $mpdf->GetTemplateSize($tplId);
    $w=210;
    if($size['w'] > $size['h']){
        $w=299;
    }
    $mpdf->AddPageByArray([
    'orientation' => $size['w'] > $size['h'] ? 'L' : 'P'
    ]);
    $mpdf->UseTemplate($tplId,0,0,$w);

}

但是我的解决方案有一个 problem.The 横向模式会稍微缩小 PDF 大小。