在PDF表单中使用ItextSharp的动态内容

问题描述 投票:-1回答:1

我正在创建一些PDF表单来填写我当前的项目。但我无法弄清楚如何动态填充内容,例如向表中添加更多行并在其下面间隔内容。

例:

这是添加数据的模板,使用Adobe Acrobat创建PDF表单,使用ItextSharp填充数据。

Example - PDF form template

这是收到内容后的pdf格式

enter image description here

使用Acrobat表单和ItextSharp时是否可以这样做?如果没有,您认为我应该采取什么方式来达到这个结果?

c# pdf itext adobe
1个回答
0
投票

很高兴看到你使用itextsharp作为你的用例。请注意,itextsharp实际上是iText 5,已经过了生命周期。您最好在软件中使用iText 7。

我也是iText团队的一员,实际上还有一款适合您用例的产品。它被称为DITO,您可以在表中配置重复行,这是您在用例中所需的。我相信你也可以使用itextsharp来做到这一点,但是我的答案是如何在不重新发明轮子的情况下正确地做到这一点。在DITO中,您将设计PDF模板,类似于您在Acrobat中创建表单所使用的模板。现在的问题是,您可以在基于浏览器的编辑器中定义与所需元素的数据绑定,一旦完成设计,唯一的方法是使用DITO后端SDK将数据发送到此模板。让我向您展示一个示例JSON数据。

{
"first_name": "Lucius",
"last_name": "Malfoy",
"email": "[email protected]",
"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"}
    ]
}

如您所见,“items”节点中有6个项目。这基本上告诉表中的行将重复6次。现在,如果这将包含200个项目,则表格将重复200次,可能会在页眉和页脚的不同页面上进行。

你制作的那个不起作用只是因为你设计了一个“静态”形式。动态表单也可以使用XFA技术在PDF中完成,该技术已在最新的PDF标准中弃用。

如果您想了解更多信息,我建议您联系iText,他们将指导您如何实现您的目标。

© www.soinside.com 2019 - 2024. All rights reserved.