1
根據CreateFormInTable.java
中的iText7示例代碼,我正在使用自定義渲染器在表單元格上添加PdfTextFormField。這個工程最初,直到我第3頁以後的PDF或創建一個表,在這一點上,我得到一個例外:將PdfFormField添加到大PDF時出現異常
Caused by: java.lang.NullPointerException
at com.itextpdf.kernel.pdf.PdfDictionary.get(PdfDictionary.java:552)
at com.itextpdf.kernel.pdf.PdfDictionary.getAsArray(PdfDictionary.java:156)
at com.itextpdf.kernel.pdf.PdfPage.getAnnotations(PdfPage.java:746)
at ...pdf.annot.PdfAnnotation.getPage(PdfAnnotation.java:435)
at ...forms.fields.PdfFormField.regenerateField(PdfFormField.java:1761)
at ...forms.fields.PdfFormField.setValue(PdfFormField.java:1038)
at ...forms.fields.PdfFormField.setValue(PdfFormField.java:999)
at ...forms.fields.PdfFormField.setValue(PdfFormField.java:994)
etc.
這似乎很容易複製,並且我可以提供一個完整的代碼示例如果你想要的,但一個簡單的方法,看看問題是插入:
後直for (int i=1; i < 2; i++) // Change 2 to 3 and you get an NPE
{
Paragraph para = new Paragraph("Page "+ i);
doc.add(para);
doc.add(new AreaBreak(AreaBreakType.NEXT_PAGE));
}
在上述iText7 Java示例文件的文檔構造在:
我已經在7.0.1和7.0.2上測試過了,結果相同。
謝謝,阿列克謝。這工作得很好。 – Vernon