1

Java コードから入力する必要があるいくつかのフォーム フィールドを含む PDF ファイルがあります。これには 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]

PdftktxtFirstNameツールは、フィールド名だけを教えてくれました。フルネームとジャストの両方を試しましたが、うまくいきtxtFirstNameません。ヘルプ?

4

1 に答える 1

1

問題は、基本ページで作業しているという事実にあるようです。「#pageSet[0」という名前がエラーの原因です。エラーの原因は「シャープ」(#) 記号だと思います。

于 2013-11-28T11:03:54.593 に答える