【问题标题】:iTextSharp - display text on hoveriTextSharp - 悬停时显示文本
【发布时间】:2017-06-07 16:55:16
【问题描述】:

我正在使用 iTextSharp 生成包含读者可能不知道的单词的 PDF。所以我想给这些词加下划线,然后添加一个功能,其中(1)当用户将鼠标悬停在词上时,会弹出一个定义,(2)如果用户点击弹出的定义,它会转到文档的定义部分。

我在网上看到了执行此操作的示例代码,但它始终要求您知道链接将出现在页面上的哪个位置,而在我的情况下,我正在生成一个结构化文档(章节和部分),所以我不知道词的位置。

我怀疑它使用了 PdfAnnotation 和 Link,但不知道具体是如何使用的。

如果解决方案在文本位于表格单元格时也有效(我看到的一些解决方案在那里有问题),则可以加分。

附言一些进展:

当我创建我的定义部分时,我调用

this.Chunks[0].SetLocalDestination("Definitions");

当我将具有挑战性的单词添加到我的 PDF 文档中时,我会在 Chunk 上调用 SetGenericTag()。然后,在我对 PdfPageEvent.OnGenericTag() 的覆盖中,我这样做:

PdfAnnotation link = PdfAnnotation.CreateLink(writer, rect, PdfAnnotation.HIGHLIGHT_INVERT, PdfAction.GotoLocalPage("Definitions", false));
writer.AddAnnotation(link);

这满足了我的部分需求——如果我点击这个词,它会将我带到文档的“定义”部分。但是当您将鼠标悬停在单词上时,仍然没有出现定义。

【问题讨论】:

标签: pdf itext


【解决方案1】:

这是我想出的:

PushbuttonField button = new PushbuttonField(writer, rect, "DefineButton-" + (++NumButtons));
PdfFormField field = button.Field;
field.Action = PdfAction.GotoLocalPage("Definitions", false);
field.UserName = definition;
writer.AddAnnotation(field);

【讨论】:

  • 当然,Mac Preview 应用程序不会显示工具提示。叹息。
猜你喜欢
  • 2014-03-25
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 2015-02-11
  • 2016-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多