首页 文章

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

提问于
浏览
1

我有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 回答

  • 1

    链接的"PDF Merger"仅在后面使用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();
    

相关问题