PHP 相当于 Coldfusion 的 cfpdfform


PHP Equivalent of Coldfusion's cfpdfform

我有一个使用政府表格的法律申请。 这些表格以 PDF 格式填写(FDF 数据)。

我们将 JSON 格式的数据集存储在数据库中。 我希望能够将这些数据插入到填写的pdf中。 Coldfusion的cfpdfform似乎做得很好。 然而,在我看来,Coldfusion有一些不合时宜的JSON格式。

所以,我的要求很简单,用PHP或javascript的数据填充pdf填写表单的最佳方法是什么?

或者,我们的 json 数据包含许多对象和数组。 有没有任何非乏味的方法可以让 Coldfusion 理解它的格式,而无需在数据文件中使用大量 cfloop 来将其放入结构中?

非常感谢。

去年

我有一个类似的项目规范。我们有一个 50 页的旧版可填写 pdf 表单,我们希望将其更新并集成到小组审核工作流程中。我遇到了无数的障碍,主要是由于最终用户环境。

我的最终解决方案有点开箱即用,但您可以考虑类似的东西:我将实际的交互式表单构建为传统的HTML5''jQuery''CSS3视图,其中包含用于将表单数据加载和保存到SQL的表单和方法。业务逻辑使用了TCPDF(我认为这是我使用的库 - 也许是类似的东西的FPDF)和一个替代样式表,将表单数据重新呈现为经典的,可打印的PDF。

我不能保证这是适合您情况的最佳解决方案,但它为我们确定了它。

你可以看看我们的SetaPDF-FormFiller组件(不是免费的!)。它允许您在纯PHP中填写PDF表单。

您只需要一种从 json 对象到 PDF 表单字段名称的映射逻辑。申请过程就是这么简单:

$writer = new SetaPDF_Core_Writer_Http('pdf-form-filled.pdf');
$document = SetaPDF_Core_Document::loadByFilename('pdf-form.pdf', $writer);
$formFiller = new SetaPDF_FormFiller($document);
$fields = $formFiller->getFields();
$fields['name']->setValue($jsonData->name);
$fields['gender']->setValue($jsonData->gender);
...
$document->save()->finish();