Добавление якоря в документ, показывающий ошибку itext java
У меня есть PDF-файл, имеющий четыре страницы, в котором мне нужно добавить якорь на первой странице и его ссылку на третьей странице. Итак, я попробовал следующий код,
document.open();
for (int i = 1; i <= pdfReader.getNumberOfPages(); i++) {
if (i == 1) {
Anchor anchor = new Anchor("Go to ThirdPage");
anchor.setReference("#Third");
Paragraph paragraph = new Paragraph();
paragraph.add(anchor);
pageContentByte = pdfCopy.getImportedPage(pdfReader, i);
pageStamp = pdfCopy.createPageStamp(pageContentByte);
ColumnText.showTextAligned(pageStamp.getUnderContent(),
Element.ALIGN_LEFT, paragraph, 20f, 800f, 0);
} else if (i == 3) {
Anchor anchor = new Anchor("ThirdPage");
anchor.setName("Third");
Paragraph paragraph = new Paragraph();
paragraph.add(anchor);
pageContentByte = pdfCopy.getImportedPage(pdfReader, i);
pageStamp = pdfCopy.createPageStamp(pageContentByte);
ColumnText.showTextAligned(pageStamp.getUnderContent(),
Element.ALIGN_LEFT, paragraph, 20f, 500f, 0);
}
pageStamp.alterContents();
pdfCopy.addPage(pageContentByte);
}
pdfReader.close();
document.close();
Но это показывает следующую ошибку в строке document.close().
Exception in thread "main" java.lang.RuntimeException: Not all annotations could be added to the document (the document doesn't have enough pages).
at com.itextpdf.text.pdf.PdfDocument.close(PdfDocument.java:887)
at com.itextpdf.text.Document.close(Document.java:416)
at HyperLinkPDFClasses.PdfCopyExample.main(PdfCopyExample.java:81)