我有一个使用政府表格的法律申请。 这些表格以 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();