如何将textfield添加到现有的pdf模板中

时间:2013-09-11 10:21:54

标签: java itext

我想从另一个模板创建一个pdf模板,结果pdf仍然是模板,然后我可以用数据填充它。  我尝试使用PdfStamper,但结果pdf不是模板,任何人都可以帮助我,谢谢。

1 个答案:

答案 0 :(得分:0)

让我们区分两种情况,具体取决于PDF模板的性质:

您在谈论XFA模板:

在这种情况下,PDF仅仅是定义表单的XML流的容器。改变它的唯一方法是编辑XML。最好使用Adobe LiveCycle Designer 手动完成,但是如果您真的想以编程方式进行,则可以使用iText从PDF中提取XML,使用任何方法操作XML XML编辑软件的类型,最后使用iText将XML放回PDF。程序化解决方案非常困难,因为它要求您熟悉XFA语法,并且XFA的规范包含数百个页面。

您正在谈论的是AcroForm模板

在这种情况下,根字典有一个/AcroForm字典,其中一个条目是一个非空的/Fields数组。您可以为此模板创建PdfReader实例,并将阅读器对象传递给PdfStamper。然后,您可以创建所需的额外字段(文本字段,按钮字段,...),并使用addAnnotation()方法将它们添加到压模中。

这显示在SubscribeForm示例中。我们有一个现有模板subscribe.pdf,我们会向其添加几个按钮,从而生成新模板subscribe_me.pdf

如果这不能解答您的问题,请澄清,因为通常不接受将您的问题限制为“我尝试使用PdfStamper但结果pdf不是模板”,您应该至少显示你尝试过的内容,否则你可能会关闭你的问题。