用PHP填写PDF表单

时间:2020-03-05 18:57:22  来源:igfitidea点击:

是否有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(请参见上文)