我会首先说我可以使用mPDF生成PDF文件,但是对于我而言,我无法将其与现有的PDF合并为PDF文件刚生成。PHP - 如何使用mPDF合并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合并。我真的在寻找解决方案或建议,但不只是链接到另一个图书馆。我已经用尽了我在Google或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;
其中URL'HTTP :// example.com/pdf/example.pdf'来自? – zerkms 2014-10-16 21:38:34
你应该给本地文件路径没有url – 2014-10-16 21:38:51
@zerkms - 对不起,澄清,它不是example.com。我的网址被设置为像“/downloads/test.pdf”这样的本地路径。 – cvanorman 2014-10-16 21:49:34