Добавление якоря в документ, показывающий ошибку 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)

0 ответов

Другие вопросы по тегам