FPDF和PHP:帮助将PDF表单与文本字段合并而不会丢失文本数据?

时间:2014-06-03 23:27:28

标签: php pdf merge fpdf

我有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');

1 个答案:

答案 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();