用PHP填充PDF表单
是否有PHP库可用于填写PDF表单,然后将其保存(压扁)到PDF文件?
这里提到的库和框架是好的,但是如果你想要做的只是填写一个表单并压扁它,我推荐命令行工具pdftk(PDF Toolkit)。
请参阅https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/
你可以从PHP调用命令行,命令是
pdftk
formfile.pdf fill_form
fieldinfo.fdf output
outputfile.pdf flatten
您将需要findFDF文件的格式,以便生成信息以填写字段。 这是一个很好的链接:
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特有的库。 我没有使用它,但评论者阿尔瓦罗(下)build议。
接受的答案是一个很大的+1,如果遇到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
然后,我可以编辑并导入better.fdf文件到我的PDF表单中。
希望这可以节省一些Google的人
用php生成fdf文件:见http://www.php.net/manual/en/book.fdf.php
然后用pdftk填入pdf(见上)
对于:
- 更简单的input格式,然后XFDF
- 真正的UTF-8(俄罗斯)支持
- 完整的php用法示例
随意检查我的PdfFormFillerUTF-8 。
使用表单提交给使用fpdf的php脚本,并将表单字段作为getvariables传递(可能不是一个很好的最佳实践,但它的工作原理),我已经取得了很大的成功。
<?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库点击相关的代码。
我们在工作中使用PDFLib 。 付费版本并不是很昂贵,如果你无法支付付费版本的话,还有一个更有限的开源版本。
我用一个可以解决这个问题的命令行界面编写了一个Perl库, CAM :: PDF 。 几年前我尝试过使用FDF解决scheme,但发现它太复杂了,所以我首先写了CAM :: PDF。 我的图书馆使用了一些启发式的方法来replace所需的文本,所以它不是完美的。 但是它大部分时间都在使用,而且使用起来非常快速,自由而且非常简单。
我们使用phppdflib库。
尝试使用HTMLDOC ,有一个免费/开源版本可用
有关如何使用HTMLDOC与PHP创buildPDF的更多信息:
https://www.msweet.org/documentation/project1/HTMLDOC.html#6_3_3