MPDF,将包含几页的 PDF 与当前页合并

Posted

技术标签:

【中文标题】MPDF,将包含几页的 PDF 与当前页合并【英文标题】:MPDF, merge a PDF with a few pages, with a current one 【发布时间】:2017-06-11 21:40:18 【问题描述】:

我有以下下载 PDF 的代码,我正在尝试从另一个 PDF 添加更多页面,在当前页面之后:

$html = 'THIS IS A ONE PAGE PDF';

include ("PDF/mpdf60/mpdf.php");
$mpdf = new mPDF('c', 'A4-L','','' , 0, 0, 0, 0, 0, 0); 
$mpdf->WriteHTML(utf8_encode($html));

$mpdf->AddPage();
$mpdf->SetImportUse();
$file = './best.pdf'; // HERE IS THE SECOND PDF WHICH I WANT TO MERGE WITH THE CURRENT ONE
$pagecount = $mpdf->SetSourceFile($file);
$tplId = $mpdf->ImportPage($pagecount);

$mpdf->UseTemplate($tplId);
ob_end_clean();
$mpdf->Output("title" . date('d-m-Y') . ".pdf",'D');
exit;

我无法找到解决方案。它创建了一个 PDF,其中 best.pdf 的最后一页覆盖了我当前的第一页 pdf。

编辑: 我在$mpdf->SetImportUse(); 之前添加了$mpdf->AddPage();,现在我将第二个pdf 的最后一页放入第一个PDF 的第二页。我现在要做的就是从 best.pdf 中获取所有页面。

【问题讨论】:

那是因为你说是模板,模板是分层的 我用 $mpdf->AddPage(); 修复了它现在我正在尝试从 best.pdf 中获取所有页面。 mpdf.github.io/reference/mpdf-functions/importpage.html 不像他们在那里解释的那样工作。我找到了解决方案。签到。 它清楚地解释了 ImportPage() 的第一个参数是页码 【参考方案1】:

我设法做到了:

$html = 'SOME TEXT HERE FOR THE CURRENT PDF';
include ("PDF/mpdf60/mpdf.php");
$mpdf = new mPDF('c', 'A4-L','','' , 0, 0, 0, 0, 0, 0); 
$mpdf->WriteHTML(utf8_encode($html));

$mpdf->AddPage();
$mpdf->SetImportUse();
$file = './best.pdf';
$pagecount = $mpdf->SetSourceFile($file);
    for ($i=1; $i<=$pagecount; $i++) 
        $import_page = $mpdf->ImportPage($i);
        $mpdf->UseTemplate($import_page);

        if ($i < $pagecount)
            $mpdf->AddPage();
    
ob_end_clean();
$mpdf->Output("title" . date('d-m-Y') . ".pdf",'D');
exit;

【讨论】:

以上是关于MPDF,将包含几页的 PDF 与当前页合并的主要内容,如果未能解决你的问题,请参考以下文章

如何删除mPdf中的空白页

翻页的实现

最后打印页的页脚 MPDF

MPDF 仅对每页的结果求和

C# CefSharp 如何获取当前页的URL

Mybatis框架技术总结