我将首先说我可以使用mPDF生成PDF文件,但对于我的生活,我无法将现有的PDF与它刚刚生成的PDF合并 .
我需要弄清楚的是如何将现有的PDF附加/添加到新生成的PDF中 . 我已经尝试使用mPDF方法导入页面,但我只能得到一个错误:
mPDF error: Cannot open '/downloads/test.pdf'.
上面的消息含糊不清,为什么它无法打开文件...这里是我用来尝试合并PDF的代码:
include_once("./pdf/mpdf/mpdf.php");
$output_file = $_GET['output_file'];
$url = $_GET['input_file'];
$technical_drawing = $_GET['tech_drawing'];
$html = file_get_contents($url);
$mpdf = new mPDF('utf-8','Letter','','',0,0,0,0,0,0,'P');
$mpdf->SetImportUse();
$pagecount = $mpdf->SetSourceFile($technical_drawing);
$tplIdx = $mpdf->ImportPage($pagecount);
$mpdf->UseTemplate($tplIdx);
$mpdf->WriteHTML($html);
$mpdf->Output($output_file, 'D');
exit;
$ output_file将是显示给用户的文件名 . $ url是我们在PDF生成期间写入文件的HTML . $ technical_drawing是我们想要附加/合并生成的PDF的PDF的相对路径 .
我知道我可以使用像ghostscript这样的东西,但我在客户端的服务器上没有这种访问类型 .
让我知道是否有人使用mPDF找到了解决方案,或者我是S.O.L.并需要找到另一个库来进行PDF合并 . 我真的在寻找解决方案或建议,但不只是寻找其他图书馆的链接 . 我已经厌倦了我在谷歌或mPDF的文档中找到的描述我所遇到的错误的文章 .
编辑:将mPDF错误从http://example.com/pdf/example.pdf更改为'/downloads/test.pdf' .
EDIT_2:代码已修复为采用相对路径 .
这是最终的工作代码 . 如果有人知道如何指定将HTML编写为PDF文档的顺序,将页面导入为最后一页(自定义页面大小与HTML的页面大小不同),则可获得奖励 .
include_once("./pdf/mpdf/mpdf.php");
$output_file = 'test-' . $_GET['output_file'];
$url = $_GET['input_file'];
$technical_drawing = $_GET['tech_drawing'];
$html = file_get_contents($url);
if(!file_exists($technical_drawing)) {
$mpdf = new mPDF('utf-8','Letter','','',0,0,0,0,0,0,'L');
} else {
$mpdf = new mPDF('utf-8','A3-L','','',0,0,0,0,0,0,'L');
$mpdf->SetImportUse();
$pagecount = $mpdf->SetSourceFile($technical_drawing);
$import_page = $mpdf->ImportPage();
$mpdf->UseTemplate($import_page);
// Add Last page
$mpdf->AddPageByArray(array(
'orientation' => 'P',
'ohvalue' => 1,
'ehvalue' => -1,
'ofvalue' => -1,
'efvalue' => -1,
'newformat' => 'Letter'
));
}
$mpdf->WriteHTML($html);
$mpdf->Output($output_file, 'D');
exit;
3 回答
我像这样合并pdf - {所有文件中的所有页面}:
$ this =扩展mPDF类的类...
这是一个老问题 . 在我将PDF合并为一个并在浏览器中显示之后,我登陆了这里 . 上面的两个答案由我测试,并没有按预期工作 . 第一个文件的第一页被正确显示,第二个文件的第一页跳过一个空白页,并被截获,即只显示N页的N-1页 . 最后一页丢失了 . 这是我在抓取到mpdf.php源代码后制作的解决方法:
未使用
$outFile
,因为生成的PDF旨在强制使用浏览器 .