我有PDF表单文件,我使用FPDM(FPDF脚本)用PHP动态填写。我可以将它们保存在我的服务器上没问题,当我在Acrobat中下载和查看时,PDF文本看起来都很好。
我的问题是:我尝试在服务器上合并多个PDF文件,以便用户可以下载包含多个页面的单个PDF文档。我下载了PDF Merger(http://pdfmerger.codeplex.com/)并将文件合并在一起,但这会导致PDF表单文本消失。
任何人都知道基于PHP的形式友好的PDF合并,并不需要在我的服务器上安装任何东西(除了上传库)?
用于合并但在表单框中杀死文本的代码:
$pdfCombined= new PDFMerger;
$pdfCombined->addPDF('../forms/generated/16.pdf', 'all')
->addPDF('../forms/generated/19.pdf', 'all')
->merge('browser', 'mergedDoc.pdf');
答案 0 :(得分:1)
链接的“PDF合并”仅在后面使用FPDI。 FPDI无法处理动态内容,如here所述。
用于合并PDF表单的纯PHP解决方案是SetaPDF-Merger组件(不是免费的)。评估需要安装装载机(Ioncube或Zend Guard)。许可证所有者将获得对源代码的访问权限,因此不需要外部库。用法也很简单:
require_once("library/SetaPDF/Autoload.php");
// create a file writer
$writer = new SetaPDF_Core_Writer_Http("mergedDoc.pdf");
// create a new merger instance
$merger = new SetaPDF_Merger();
// add the files
$merger->addFile('../forms/generated/16.pdf');
$merger->addFile('../forms/generated/19.pdf');
// merge all files
$merger->merge();
// get the resulting document and set the writer instance
$document = $merger->getDocument();
$document->setWriter($writer);
// save the file and finish the writer
$document->save()->finish();