是否有可用于填写PDF表单并将其保存(扁平化)为PDF文件的PHP库?
pdftk
formfile.pdf fill_form
fieldinfo.fdf output
outputfile.pdf flatten
您需要找到FDF文件的格式,以便生成填充字段的信息。 这是一个很好的链接:
http://www.tgreer.com/fdfServe.html
[编辑:上面的链接似乎已经失效了。这里提供更多信息...]
pdftk命令可以从PDF表单文件生成FDF文件。然后,您可以使用生成的FDF文件作为示例。表单字段是FDF文件的一部分,看起来像
...
<< /T(f1-1) /V(text of field) >>
<< /T(f1-2) /V(text of another field) >>
...
您还可以查看php-pdftk,这是一个专门针对PHP的库。我没有使用过它,但评论者Álvaro(下面)推荐它。
对于已被接受的答案表示赞同,如果您在fdf文件中遇到编码问题,这里有一个小贴士。如果你生成了fields.fdf,然后运行时出现问题。
file -bi fields.fdf
application/octet-stream; charset=binary
如果你遇到了UTF-16字符集问题,那么请尝试通过以下方式将FTF进行转换:
cat fields.fdf | sed -e's/\x00//g' | sed -e's/\xFE\xFF//g' > better.fdf
我使用一个表单,将表单提交到一个使用fpdf的php脚本,并将表单字段作为get变量传递进去,这种方法非常成功(也许不是最好的最佳实践,但它有效)。
<?php
require('fpdf.php');
$pdf=new PDF();
$pdf->AddPage();
$pdf->SetY(30);
$pdf->SetX(100);
$pdf->MultiCell(10,4,$_POST['content'],0,'J');
$pdf->Output();
?>
你可以得到类似这样的东西。
<form action="fooPDF.php" method="post">
<p>PDF CONTENT: <textarea name="content" ></textarea></p>
<p><input type="submit" /></p>
</form>
看起来这个已经被讨论过了。点击查看使用Zend Framework PDF库的相关代码。