当前位置: 首页 > 知识库问答 >
问题:

带有iText错误的PDF表单填充

益富
2023-03-14

我有一个PDF文件,里面有一些我需要从Java代码中填写的表单字段。为此,我使用iText 2.1.7库,代码如下:

PdfReader reader = new PdfReader("C:\\Users\\igor\\Desktop\\test.pdf");
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("testout.pdf"), '\0', true);
AcroFields fields = stamper.getAcroFields();
fields.setField("txtFirstName", "Milan");
stamper.close();

我会收到以下错误消息:

org.w3c.dom.DOMException: INVALID_CHARACTER_ERR: An invalid or illegal XML character is specified. 
at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.checkQName(CoreDocumentImpl.java:2582)
at com.sun.org.apache.xerces.internal.dom.ElementNSImpl.setName(ElementNSImpl.java:117)
at com.sun.org.apache.xerces.internal.dom.ElementNSImpl.<init>(ElementNSImpl.java:80)
at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.createElementNS(CoreDocumentImpl.java:2095)
at com.lowagie.text.pdf.XfaForm$Xml2SomDatasets.insertNode(Unknown Source)
at com.lowagie.text.pdf.AcroFields.setField(Unknown Source)
at com.lowagie.text.pdf.AcroFields.setField(Unknown Source)
at proba.main(proba.java:21)
applicationPrepaid[0].#pageSet[0].Pagina1[0].txtFirstName[0]

共有1个答案

赵镜
2023-03-14

问题似乎在于您使用的是基本页面。导致错误的是名称“#pageset[0]”。我认为是“pound”(#)符号导致了错误。

 类似资料:
  • 我有一个基于XFA的pdf表单,我们需要使用java来填充它。你能建议最好的方法吗。我能够使用iText为pdf生成xfa xml。 我有从上面的代码生成的Pdf和Xfa XML。你能不能建议我如何继续下去,因为我似乎没有主意了。我试图检查XFA文档,但似乎不对。我没有xml,pdf非常复杂,因为它有许多字段,是一个动态XFA pdf表单。 您的帮助和建议将受到衷心的感谢。

  • 在我的Android应用程序中,我从pdffile中填充表单字段,使用itextg如下: 我可以看到,在调试和检查压模时,模板字段的值实际上是设置的。但是一旦我打开目标文件,我所有的字段都是空的。 如果我不平整我的窗体,这些值会保留在字段中,这让我相信这些值也会存在于fladedpdf中,但不会显示。 顺便说一句,在itext演示中使用FormFiller表单(http://itextpdf.co

  • 当我使用这个长字段名时,我没有得到任何错误,但是得到的PDF不包含我放在字段中的值。我想可能字段名有问题,所以我使用了Pdftk工具,它只给出了作为字段名。但是当我仅仅使用它时,我会得到error。救命?

  • 我们需要将现有的多个 PDF 导入到单个新 PDF 中。部分代码的工作方式类似于 iText 在操作 2nd 版的第 6.2.1 节中的示例代码: 然而,我们刚刚意识到,在处理带注释的可填充PDF时(在我们的例子中,那些PDF已经填充了数据),所有填充的数据在新的PDF中都丢失了。 我们在书的同一部分找到了答案: 了解呈现页面内容所需的资源与页面的交互功能之间的区别非常重要。通常,这些功能称为批注

  • 代码: 这段代码没有异常,一切似乎都很好,但是如果我打开填充的pdf,Adobe Reader会说这样的话: 此文档启用了扩展功能。此文档自创建以来已更改,无法再使用扩展功能。 有些字段填写正确,但我无法编辑。某些字段为空。若我通过单击Adobe Reader中的“导入数据”手动选择xml,则表单填写正确,所以我猜xml中并没有错误。

  • 我的目标是用iText填写交互式PDF xfa表单。一切正常,但不幸的是,某些字段有JavaScript操作,我无法通过fillXfaForm()方法填充它们。我的问题是:如何以编程方式(在Java中)实现它?有可能吗? 我可以通过启用JS的Adobe Reader导入工具手动完成。 请参阅PDF表格:http://www.finanse.mf.gov.pl/documents/766655/14