问题
I am generating a PDF document using TCPDF. My requirement is to merge an existing PDF content at the last page of the dynamically generated PDF.
回答1:
By far the best solution to your problem is to use FPDI.
https://github.com/Setasign/FPDI
The way it works is that FPDI extends TCPDF so you can work with an FPDI object using all of the methods that you're used to using with TCPDF, but with the additional methods that you need to import pages from existing PDF files (setSourceFile, getTemplateSize and useTemplate).
It looks a bit daunting to set up, but if you're using Composer it is actually incredibly easy. Just add setasign/fpdi and setasign/fpdi-tcpdf to your composer.json file and then use an instance of FPDI in place of your TCPDF instance. I found I didn't even have to call class_exists('TCPDF', true) as mentioned on the github page. Once I added those other entries to composer.json and ran composer dumpautoload it just worked.
回答2:
This is still in development for TCPDF: http://www.tcpdf.org/doc/code/classTCPDF__IMPORT.html#a5a9effc936e8fa461c0f6717c2d10d93
If possible you can use ZEND:
require_once 'Zend/Pdf.php';
$pdf1 = Zend_Pdf::load("1.pdf");
$pdf2 = Zend_Pdf::load("2.pdf");
foreach ($pdf2->pages as $page){
$pdf1->pages[] = $page;
}
$pdf1->save('3.pdf');
If you are running on Linux, you can also run a shell command.
<?php
exec('pdfjam 1.pdf 2.pdf -o 3.pdf'); // -o = output
You can install pdfjam from here: http://www2.warwick.ac.uk/fac/sci/statistics/staff/academic/firth/software/pdfjam/pdfjam_latest.tgz
来源:https://stackoverflow.com/questions/33969828/merge-existing-pdf-with-dynamically-generated-pdf-using-tcpdf