1

我有一个 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)

PDF不是我创建的,所以我不知道文件使用什么类型的表格(如果我理解正确的话,有FDF和XFA表格)。由于 PDF 不是我创建的,我使用这个工具http://support.persits.com/pdf/demo_formfields.asp来找出表单字段的名称,它给了我这个:

applicationPrepaid[0].#pageSet[0].Pagina1[0].txtFirstName[0]

Pdftk工具只给了我txtFirstName字段名称。我尝试了全名,只是txtFirstName它不起作用。帮助?

4

1 回答 1

1

问题似乎在于您正在使用基本页面这一事实。名称“#pageSet[0”是导致错误的原因。我认为这是导致错误的“磅”(#) 符号。

于 2013-11-28T11:03:54.593 回答