我正在使用iText 7.0.5的“链接”和“目标”标签来创建链接,同时生成pdf文档。当只有一个链接和目标时,它会按预期工作。但是,当我添加多个链接和目标时,它无法正常工作。 例如,有三个链接和3个目标,每个链接映射到不同的目标。如果我单击PDF中的第三个链接,它将被重定向到第三个目标,但是如果我单击第一个和第二个链接,这些链接也将被重定向到第三个目标,而不是第一个或第二个目标。 下面是示例代码,我如何使用iText创建链接和目标。 请让我知道这里可能是什么问题。还有另一种方法可以实现这一目标。谢谢。
// PDF文档将保存这些表。目的地
Table destinationTable1 = new Table(1);
Cell cell = new Cell().add(addHeaderCellWithBorder("First Destination"));
cell.setProperty(Property.DESTINATION, "dest1");
destinationTable1.addCell(cell);
Table destinationTable2 = new Table(1);
Cell cell = new Cell().add(addHeaderCellWithBorder("Second Destination"));
cell.setProperty(Property.DESTINATION, "dest2");
destinationTable2.addCell(cell);
//在另一个表中创建链接
Table linkTable1 = new Table(100);
Cell linkcell1 = new Cell();
Paragraph p1 = new Paragraph();
PdfAction firstLink = PdfAction.createGoTo("dest1");
PdfLinkAnnotation firstLinkAnnot = new PdfLinkAnnotation(new Rectangle(0, 0, 0, 0))
.setHighlightMode(PdfAnnotation.HIGHLIGHT_INVERT).setAction(firstLink)
.setBorderStyle(PdfAnnotation.STYLE_UNDERLINE);
Link link1 = new Link("First Link", firstLinkAnnot);
p1.add(link1.setUnderline()).setFontColor(Color.BLUE).setFontSize(7).setPaddingTop(1).setMultipliedLeading(1);
linkTable1.addCell(linkcell1.add(p1).setBorder(Border.NO_BORDER));
Table linkTable2 = new Table(100);
Cell linkcell2 = new Cell();
Paragraph p2 = new Paragraph();
PdfAction secondLink = PdfAction.createGoTo("dest2");
PdfLinkAnnotation secondLinkAnnot = new PdfLinkAnnotation(new Rectangle(0, 0, 0, 0))
.setHighlightMode(PdfAnnotation.HIGHLIGHT_INVERT).setAction(secondLink)
.setBorderStyle(PdfAnnotation.STYLE_UNDERLINE);
Link link2 = new Link("Second Link", secondLinkAnnot);
p2.add(link2.setUnderline()).setFontColor(Color.BLUE).setFontSize(7).setPaddingTop(1).setMultipliedLeading(1);
linkTable2.addCell(linkcell2.add(p2).setBorder(Border.NO_BORDER));