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