Java iTextPDF-无法将getOverContent()用作表的参数。将内部锚添加到表中后,writeSelectedRows()将无法使用

Java iTextPDF-无法将getOverContent()用作表的参数。将内部锚添加到表中后,writeSelectedRows()将无法使用,java,itext,itextpdf,Java,Itext,Itextpdf,我一直在尝试创建一个目录,使用锚动态链接到PDF中的其他页面。我在使用stamper.getOverContent()作为方法表.writeSelectedRows()中的canvas参数时遇到问题 下面的示例将向第4页写入一个包含锚定目的地的表,并向第8页写入一个包含链接回第4页的锚定超链接的表。(请注意,我使用表格来实现这一点,因为这只是最终需要实现的目标的一部分) 如果anchor.setReference(),这种方法就可以正常工作是外部超链接,但如果是内部超链接,则返回时会出现以下错误

我一直在尝试创建一个目录,使用锚动态链接到PDF中的其他页面。我在使用
stamper.getOverContent()
作为方法
表.writeSelectedRows()中的
canvas
参数时遇到问题

下面的示例将向第4页写入一个包含
锚定
目的地的表,并向第8页写入一个包含链接回第4页的
锚定
超链接的表。(请注意,我使用表格来实现这一点,因为这只是最终需要实现的目标的一部分)

如果
anchor.setReference(),这种方法就可以正常工作
是外部超链接,但如果是内部超链接,则返回时会出现以下错误:

在 com.itextpdf.text.pdf.internal.PdfAnnotationsImp.addPlainAnnotation(PdfAnnotationsImp.java:126) 请访问com.itextpdf.text.pdf.PdfDocument.localGoto(PdfDocument.java:2178) 在 com.itextpdf.text.pdf.PdfDocument.writeLineToContent(PdfDocument.java:1643) com.itextpdf.text.pdf.ColumnText.go(ColumnText.java:1162) com.itextpdf.text.pdf.ColumnText.go(ColumnText.java:994)位于 com.itextpdf.text.pdf.ColumnText.goComposite(ColumnText.java:1541)位于 com.itextpdf.text.pdf.ColumnText.go(ColumnText.java:1000)在 com.itextpdf.text.pdf.ColumnText.go(ColumnText.java:994)位于 com.itextpdf.text.pdf.ColumnText.go(ColumnText.java:982)位于 com.itextpdf.text.pdf.PdfPRow.writeCells(PdfPRow.java:583)位于 com.itextpdf.text.pdf.PdfPTable.writeSelectedRows(PdfPTable.java:833) 在 com.itextpdf.text.pdf.PdfPTable.writeSelectedRows(PdfPTable.java:966) 在 com.itextpdf.text.pdf.PdfPTable.writeSelectedRows(PdfPTable.java:912) 在 com.itextpdf.text.pdf.PdfPTable.writeSelectedRows(PdfPTable.java:891) 在 com.ems.rendition.cts.plugin.StamperPDFPlugin.createPdf(StamperPDFPlugin.java:1727) 在 com.ems.rendition.cts.plugin.StamperPDFPlugin.main(StamperPDFPlugin.java:1684)

我做错什么了吗?还是这是一个问题

注意:我在这里问了一个类似的问题-它没有指出
getOverContent()
是问题所在,而是将重点放在
锚的实际实现上

table.writeSelectedRows(0, -1, 36, 700, stamper.getOverContent(4));
String strFileName = "C:\\link\\to\\existing\\PDF\\document.pdf";

PdfReader reader = new PdfReader(strFileName);
FileOutputStream out = new     FileOutputStream("results/tables/link_in_positioned_table.pdf");

PdfStamper stamper = new PdfStamper(reader, out);
stamper.setRotateContents(true);

//Page 4 table containing destination
PdfPTable table = new PdfPTable(1);
PdfPCell cell = new PdfPCell();
Paragraph p = new Paragraph();  
table.setTotalWidth(500);

Anchor target = new Anchor("page 4");
target.setName("page4");
p.add(target);
cell.addElement(p);
table.addCell(cell);
table.writeSelectedRows(0, -1, 36, 700, stamper.getOverContent(4));


//Page 8 table containing link
PdfPTable table1 = new PdfPTable(1);
PdfPCell cell1 = new PdfPCell();
Paragraph p1 = new Paragraph();  
table1.setTotalWidth(500);

Anchor anchor = new Anchor("page4 link");
anchor.setReference("#page4");
p1.add(anchor);
cell1.addElement(p1);
table1.addCell(cell1);
table1.writeSelectedRows(0, -1, 36, 700, stamper.getOverContent(8));

stamper.close();
reader.close();
out.close();