我已经在Joomla网站上成功创建了3个微风表单表单,并想知道使用保存到数据库中的表单数据填写PDF表单的最佳方法,然后在用户完成表单时通过电子邮件发送到特定地址作为最后一步。我知道使用 Breezing Forms,您可以将表单数据导出为 PDF,但是我的表单布局对于该类型导出的格式来说太复杂了。我需要的是表单数据来填充格式化的PDF表单。
以下是其中一个表单及其应填写的 PDF 的示例:形式:http://www.nutriworkscnc.com/Development/index.php?option=com_breezingforms&view=form&Itemid=640PDF: http://www.nutriworkscnc.com/Development/images/forms/history.pdf
您基本上有两种方法来填写PDF表单:客户端和服务器端。
对于客户端填充,您将创建一个 FDF 文件,其中/F 键指向基本 PDF(有些人会称之为模板文件)。然后,您将FDF发送给用户,然后精明的PDF查看器将加载基本PDF并填充它。
如果您必须为愚蠢的PDF查看器提供服务,则必须依靠服务器端填充。为此,有应用程序,例如Appligent的FDFMerge或库,例如iText。然后,您必须以适当的方式为服务器端填充工具准备数据。
如果你想通过使用PHP来解决这个问题,你可以看看SetaPDF-FormFiller组件(不是免费的!)。有了它,您可以通过一个非常简单的界面填充字段:
// Create an http writer
$writer = new SetaPDF_Core_Writer_Http("filled.pdf");
// Load document by filename
$document = SetaPDF_Core_Document::loadByFilename("history.pdf", $writer);
// Initiate a form filler instance
$formFiller = new SetaPDF_FormFiller($document);
// Get the fields instance
$fields = $formFiller->getFields();
// fill in the fields
$fields["Client Name"]->setValue("Test Person");
$fields["Address street"]->setValue("Teststreet 1");
$fields["Address city zip"]->setValue(12345);
$fields["diabetes"]->setValue(true);
$fields["diar"]->setValue(true);
// done
$document->save()->finish();