用PHP填写PDF表单
是否有PHP库可用于填写PDF表单,然后将其保存(展平)为PDF文件?
解决方案
回答
看起来以前已经讨论过了。使用Zend Framework PDF库单击以获取相关代码。
回答
我们在工作中使用PDFLib。付费版本不是很昂贵,并且如果我们无法购买付费版本,则开放源代码版本的数量将更为有限。
回答
这里提到的库和框架很好,但是如果我们只想填写一个表格并将其展平,我建议使用命令行工具pdftk(PDF工具包)。
参见https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/
我们可以从php调用命令行,命令是
pdftk formfile.pdf fill_form fieldinfo.fdf输出outputfile.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(如下)推荐它。
回答
我使用提交到使用fpdf的php脚本并将其作为获取变量传递到表单字段中的表单获得了很多成功(也许不是一个很好的最佳实践,但它可以工作)。
<?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>
这个最基本的例子应该可以入门。
回答
我写了一个Perl库CAM :: PDF,它带有可以解决此问题的命令行界面。几年前,我尝试使用FDF解决方案,但是发现它太复杂了,这就是为什么我首先编写CAM :: PDF的原因。我的图书馆使用了一些试探法,用所需的文本替换表格,因此并不完美。但是它在大多数时间都有效,并且快速,免费且易于使用。
回答
用php生成fdf文件:
参见http://www.php.net/manual/en/book.fdf.php
然后使用pdftk将其填充为pdf(请参见上文)