PHP导入PDF表单并输出PDF表单


PHP import PDF form and output PDF form

我有一个可填写的PDF表单,我需要使用PHP在PDF上写一些数字(不一定是表单字段,但只是PDF),然后再次输出PDF与原始文档的所有可填写字段。

FPDI和FPDF正在做这项工作,但PDF可填充字段将在过程中丢失。

这里是建议的mpdf,大多数mpdf的例子我发现是关于从HTML制作新的PDF文件。有mpdf手册,但我不确定什么功能应该解决我的问题。

下面的代码可以完成这个工作,但是所有的PDF表单字段都将消失。

include('FPDF-master/fpdf.php'); 
include('FPDI1_6_1/fpdi.php');
//include('mpdf60/mpdf.php');
$pdf = new FPDI();
$pdf->AddPage(); 
$pdf->setSourceFile('myfillableform.pdf'); 
$tplIdx = $pdf->importPage(1); 
$pdf->useTemplate($tplIdx, 0, 0); 
$pdf->SetFont('Times', 'B'); 
$pdf->SetTextColor(0,0,0); 
$pdf->SetXY(140, 45);
$pdf->Write(0, $someNumber); 
$pdf->Output("newfillableform_with_number.pdf", 'F'); 

我设法用FPDM解决了我的问题。FPDM允许填写PDF表单字段(包括只读字段)。

所以我只是用Acrobat Pro添加了另一个字段到我的PDF文档中,使该字段只读,并使用FPDM,我可以将我的数字或文本写入只读字段,可以输出PDF,并且我的文档中的所有其他字段都可以根据需要填充。

require('fpdm/fpdm.php');
$fields = array(
    'field'    => "$someNumber"
);
$pdf = new FPDM('myfillableform.pdf');
$pdf->Load($fields, false);
$pdf->Merge();
$pdf->Output("newfillableform_with_number.pdf", 'F'); 

FPDI不能处理任何动态内容,如表单字段或任何其他注释,如在其常见问题解答中记录的。

如果你想添加新的内容到现有的PDF,你应该看看SetaPDF-Stamper组件(不是免费的!)