Je suis l'ajout d'un PdfTextFormField sur une cellule de tableau à l'aide d'un moteur de rendu personnalisé, comme par exemple le code iText7 dans CreateFormInTable.java
. Cela fonctionne d'abord, jusqu'à ce que je crée un tableau à la page 3 ou ultérieure du PDF, à quel point je me fais une exception:Exception lors de l'ajout d'un PdfFormField à un grand 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.
Il semble assez facile à reproduire, et je peux fournir un échantillon de code complet si vous voulez, mais un moyen simple de voir le problème est d'insérer:
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));
}
directement après le constructeur de document dans le fichier exemple mentionné ci-dessus iText7 Java à:
Je l'ai testé sur 7.0.1 et 7.0.2, avec le même résultat.
Merci, Alexey. Cela a bien fonctionné. – Vernon