如何使用 php mpdf 库将多个 PDF 文件合并为一个 PDF

Posted

技术标签:

【中文标题】如何使用 php mpdf 库将多个 PDF 文件合并为一个 PDF【英文标题】:How to Merge Multiple PDF Files Into One PDF using php mpdf library 【发布时间】:2020-07-21 12:44:57 【问题描述】:

我的目标是将多个文件合并为单个 pdf 文件。为此,我从数据库中获取具有不同文件格式的多个文件。所有 JPG/PNG 文件从中添加到 html 页面并将其转换为单个 pdf 文件。

$dat='<html>
        <head>
            <title>Title of the document</title>
        </head>
        <body>
        <img src="/uploads/file_name1.PNG"  >
        <img src="/uploads/file_name2.PNG"  >
        </body>
        </html>';
        $header_data = array('header'=>'','footer'=>'');
        $this->load->library('mpdf');
        $mpdf = new mPDF('c','A4',10, 'Arial',10,10,10,10,0,0);
        $mpdf->useAdobeCJK = true;
        //$mpdf->SetAutoFont(AUTOFONT_ALL);
        $data['cmp_id']=1;
        $header_data = array('header'=>'','footer'=>'');
        $mpdf->SetHTMLHeader(array('h'=>'35','html'=>$header_data['header'],'',''));
        $mpdf->SetHTMLFooter(array('h'=>'25','html'=>$header_data['footer'],'',''));
        $mpdf->SetTitle($candidate_name);
        $mpdf->WriteHTML($dat);
        $mpdf->Output('forms.pdf','I');

现在我需要使用 mpdf 库合并这个 pdf 文件和从数据库中获取的其他 pdf 文件。

否则包括pdf在内的所有文件都需要采用html格式,我可以从中使用生成的pdf文件。当我在html中添加pdf文件(使用iframe)时,它将不起作用。 请帮我解决这个问题。

【问题讨论】:

【参考方案1】:

我不知道如何使用 mpdf,但我在 Linux 上的生产环境中完成了所有这些工作,在质量、大小和时间方面都取得了优异的成绩:

    调用“convert -density 150 -strip -interlace JPEG -compress JPEG -quality 72' [file] [fileDst]”将所有光栅文件转换为 PDF。 一旦所有 PDF 文件调用 'gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/default -dNOPAUSE -dQUIET -dBATCH -dDetectDuplicateImages -dCompressFonts=true -r150 -sOutputFile=[pdfDstFile] [filesInput]。

无需创建 html 文件,只需安装所需的 Linux 软件包并处理输入文件。 (请检查语法并调整参数,代码只是从我的代码中粘贴的)

【讨论】:

以上是关于如何使用 php mpdf 库将多个 PDF 文件合并为一个 PDF的主要内容,如果未能解决你的问题,请参考以下文章

PHP - 如何使用 mPDF 合并 PDF

PHP使用mpdf 生成pdf文件

PHP使用mpdf 生成pdf文件

PHP中使用mpdf 导出PDF文件的实现方法

如何使用php合并两个pdf文件

当我不想在服务器上下载文件时,无法使用 mPDF 生成多个 PDF