似乎 FPDI 可以合并不同的 pdf 文档,因此您可以先构建第一页,然后再构建其他页面,然后按指定顺序将其合并为一个(Merge PDF files with PHP)
class concat_pdf extends FPDI {
var $files = array();
function setFiles($files) {
$this->files = $files;
}
function concat() {
foreach($this->files AS $file) {
$pagecount = $this->setSourceFile($file);
for ($i = 1; $i <= $pagecount; $i++) {
$tplidx = $this->ImportPage($i);
$s = $this->getTemplatesize($tplidx);
$this->AddPage('P', array($s['w'], $s['h']));
$this->useTemplate($tplidx);
}
}
}
}
/* uses example :
$pdf =& new concat_pdf();
$pdf->setFiles(array("doc.pdf","pauta.pdf", "4bp.pdf", "5bp.pdf"));
$pdf->concat();
//$pdf->Output("newpdf.pdf", "I");//for printing on screen
$pdf->Output("newpdf.pdf", "F");//for saving it
*/
但是对于 1.4 以上的版本,使用了新的压缩,FPDI 通过解析器包支持它,但它不是免费的(100 欧元)。你可以看看有没有办法让 FPDF/FPDI 或 Zend_Pdf 支持解析大于 1.4 的 PDF?也。