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

时间:2016-09-06 14:25:45

标签: php forms pdf fpdf

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

FPDI和FPDF正在完成这项工作,但PDF可填写字段将在此过程中丢失。

Here建议使用mpdf,我发现的大多数mpdf示例都是关于从HTML制作新的PDF文件。有mpdf manual,但我不确定哪些函数可以解决我的问题。

下面的代码完成了这项工作,但正如所说的那样,所有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'); 

2 个答案:

答案 0 :(得分:2)

我设法使用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'); 

答案 1 :(得分:0)

FPDI无法处理任何动态内容,例如表单字段或其FAQ中记录的任何其他注释。

如果您想向现有PDF添加新内容,请查看SetaPDF-Stamper component(不是免费的!)。