用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