java - iText 与 anchor 有问题(可点击但没有任何反应)

标签 java itext

我正在尝试创建一个简单的目录(文档只有 4 页长)。 我遇到的问题是,虽然我的鼠标确实变成了一只手,但当我点击它时没有任何反应。 是的,目标在另一页上。

创建目录行:

Chunk chunk = new Chunk("Contact information");
chunk.setLocalGoto("Contact information");  
document.add(new Paragraph(chunk));

目标之一:

Anchor anchor = new Anchor("Contact information", font1);
anchor.setName("Contact information");
Chapter chapter = new Chapter(new Paragraph(anchor), 1);    
chapter.setNumberDepth(0);
document.add(chapter);

Goto StringAnchor name 匹配,所以我看不出我做错了什么。

最佳答案

this example来自 iText in Action,内部链接在名称中使用 #

另一种方法是对链接和目标都使用 Chunk

chunkDest.setLocalDesitination("foo");
...
chunkLink.setLocalGoto("foo"); // or "#foo"?

我对 PdfDocument(localGoto 和 localDestination)的阅读让我相信它们的创建顺序无关紧要......等等......不,应该无关紧要只要两者都被实际调用。

您是否真的单步执行了您的代码以确保它们都被实际调用了?

另一种选择:结束运行。下拉到 PDF 原生代码并在那里执行。为章节位置构建您自己的 PdfDestination,为 TOC 构建您自己的 PdfAction。像这样:

PdfDestination fitH = new PdfDestination(PdfDestination.FITH);
// the destination doesn't have a page associated with it until you call
//  gotoLocalPage.  Kinda goofy, but we can work with it.
PdfAction link = PdfAction.gotoLocalPage(pageNum, fitH, writer);
chunk.setAction(link);

注意事项:

  1. 如果您需要指向同一位置的多个链接,您可以重复使用给定的 PdfAction。
  2. 定义 PdfDestination 的方法有很多种,我只使用了我喜欢的一种。 YMMV。

关于java - iText 与 anchor 有问题(可点击但没有任何反应),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4592134/

相关文章:

java - itextsharp : java to vb. 净

java - 使用 iText 在 PDF 中不显示条形码

java - 如何更改 Apache Commons 电子邮件中的字符集?

java - 为什么PowerShell会显示 'Cannot find symbol'错误,但是VS Code Java Process Console可以很好地运行它?

java - 从 android 媒体播放器获取 session ID?

java - 使用 Java 8 检查数组中是否存在元素

java - JAXB : 2 counts of IllegalAnnotationExceptions

c# - 设置高度/宽度时,iTextSharp datamatrix 条形码返回 null

java - 在 iText 中查找不可见文本

java - 是否可以逐渐使用 iText RTF(Java 库)刷新输出? (内存不足错误)