是否有PHP库可用于填充PDF表单,然后将它们保存(展平)为PDF文件?
使用PHP填写PDF表单[关闭]
Filling PDF Forms with PHP [closed]
===============>>#1 票数:47 已采纳
这里提到的库和框架都很好,但是如果您只想填写表格并将其展平,我推荐使用名为pdftk(PDF Toolkit)的命令行工具。
请参阅https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/
你可以从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(下面)推荐它。
===============>>#2 票数:5
接受答案的大+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表单。
希望这可以节省一些谷歌的人
===============>>#4 票数:3
使用php生成fdf文件:请参阅http://www.php.net/manual/en/book.fdf.php
然后用pdftk将其填入pdf(见上文)
===============>>#5 票数:3
使用提交到使用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>
这个骨架的例子应该有助于你开始。
===============>>#6 票数:1
我写了一个Perl库, CAM :: PDF ,带有一个可以解决这个问题的命令行界面 。 我多年前尝试过使用FDF解决方案,但发现它太复杂了,这就是我首先编写CAM :: PDF的原因。 我的库使用一些启发式方法将表单替换为所需的文本,因此它并不完美。 但它大部分时间都可以工作,并且使用起来快速,免费且非常简单。
===============>>#7 票数:1
看起来这已经被覆盖过了 。 使用Zend Framework PDF库点击查看相关代码。
===============>>#8 票数:1
我们在工作中使用PDFLib 。 付费版本并不是非常昂贵,如果你无法支付付费版本,那么开源版本就会更加有限。