【发布时间】:2019-02-14 17:01:07
【问题描述】:
我正在创建一些 PDF 表单来填写我当前的项目。但我不知道如何动态填充内容,例如向表格添加更多行并在其下方间隔内容。
示例:
这是添加数据的模板,使用 Adobe Acrobat 创建 PDF 表单并使用 ItextSharp 填写。
这是收到内容后的pdf格式
在使用 Acrobat 表单和 ItextSharp 时这可能吗?如果不是,你认为我应该怎么做才能达到这个结果?
【问题讨论】:
我正在创建一些 PDF 表单来填写我当前的项目。但我不知道如何动态填充内容,例如向表格添加更多行并在其下方间隔内容。
示例:
这是添加数据的模板,使用 Adobe Acrobat 创建 PDF 表单并使用 ItextSharp 填写。
这是收到内容后的pdf格式
在使用 Acrobat 表单和 ItextSharp 时这可能吗?如果不是,你认为我应该怎么做才能达到这个结果?
【问题讨论】:
很高兴看到您将 itextsharp 用于您的用例。请注意,itextsharp 实际上是 iText 5,它已经停产。你最好在你的软件中使用 iText 7。
我也是 iText 团队的一员,实际上有一款产品只适合您的用例。它称为 DITO,您可以在表中配置重复行,这是您在用例中需要的。我相信你也可以用 itextsharp 做到这一点,但是我的答案是展示如何在不重新发明轮子的情况下正确地做到这一点。在 DITO 中,您将设计 PDF 模板,类似于在 Acrobat 中创建表单的操作。现在要注意的是,您在基于浏览器的编辑器中定义了与所需元素的数据绑定,一旦完成设计,唯一的事情就是使用 DITO 后端 SDK 将数据发送到此模板。让我向您展示一个示例 JSON 数据。
{
"first_name": "Lucius",
"last_name": "Malfoy",
"email": "malfoy@hogwarts.com",
"address": "Abra Cedavra\nTo the att. of L. Malfoy\nWiltshire\nEngland",
"items": [
{"item": "Commercial Invisibility Cloak License .NET", "price": "6800", "quantity": "1"},
{"item": "Updates and Support Commercial Invisibility Cloak .NET", "price": "666", "quantity": "1"},
{"item": "Commercial Non-Production House Elf", "price": "3140", "quantity": "1"},
{"item": "Updates and Support Commercial Non-Production House Elf", "price": "152", "quantity": "1"},
{"item": "Nimbus 2001", "price": "5640", "quantity": "13"},
{"item": "Fantastic Beasts and Where to Find them", "price": "28", "quantity": "1"}
]
}
如您所见,“项目”节点中有 6 个项目。这基本上告诉表中的行将重复 6 次。现在,如果这将包含 200 个项目,则该表将重复 200 次,可能会使用页眉和页脚遍历不同的页面。
你制作的那个不能仅仅因为你设计了一个“静态”表单。动态表单也可以使用已在最新 PDF 标准中弃用的 XFA 技术在 PDF 中完成。
如果您想了解更多信息,我建议您联系 iText,他们将指导您如何实现您想要的。
【讨论】: