我有一个问题,在pdf文件与itext创建的超链接。目前,使用以下用java编写的代码,我能够成功地创建链接。但是,当我悬停在链接上时,就会显示链接文本。客户端不希望链接文本出现在悬停状态下。我怎样才能移除悬停,或者给它交替的文本来显示。“课程信息”)?我正在使用itext版本5.5.9。我看过"iText in Action“第7章,但没有找到我需要的东西。有没有更好的方法来创建链接?任何帮助和例子都将不胜感激。谢谢。
package edu.ucsd.act.academic.studente2t.util;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfAction;
import com.itextpdf.text.pdf.PdfAnnotation;
import com.itextpdf.text.pdf.PdfBorderArray;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPCellEvent;
import com.itextpdf.text.pdf.PdfWriter;
class LinkInCellEvent implements PdfPCellEvent
{
protected String url;
public LinkInCellEvent(String url)
{
this.url = url;
}
public void cellLayout(PdfPCell cell, Rectangle position,
PdfContentByte[] canvases)
{
PdfWriter writer = canvases[0].getPdfWriter();
PdfAction action = new PdfAction(url);
PdfAnnotation link = PdfAnnotation.createLink(writer, position,
PdfAnnotation.HIGHLIGHT_INVERT, action);
PdfBorderArray border = new PdfBorderArray(0, 0, 0);
link.setBorder(border);
writer.addAnnotation(link);
}
}发布于 2016-10-04 08:33:37
这不是iText问题。这是PDF所固有的。PDF规范(ISO-32000-1)没有提到查看器应该如何提供链接注释的工具提示。
您的客户(可能也应该是我们的客户)可能会被以下概念所混淆:
附加操作
当E (enter)和X (exit)事件在关于附加操作的部分中描述时,“工具提示”一词的唯一出现在注释中。您可以使用其他操作,例如,在小部件注释上,当有人在小部件注释上盘旋时,会出现/消失自定义工具提示。
当您研究PDF标准时,您将看到有几个实例可以定义附加操作(/AA),但是链接注释不是其中之一。
可选字段名
还有一个/TU条目(以前称为用户名条目),它是一个替代的字段名(我引用规范),在用户界面中标识字段的任何地方都将使用它来代替实际的字段名(例如,引用该字段的错误消息或状态消息)。在提取文档内容以支持残疾用户无障碍访问或其他目的时,此文本也很有用。/TU条目的值经常被查看者用作工具提示,但是从描述中可以看出,/TU条目是特定于字段的,而不是针对注释的。它只能在字段字典中使用,而不能在注释字典中使用。
结论:
当有人在链接注释上徘徊时所显示的任何内容都不会在规范中描述。当用户悬停在链接注释上时,PDF查看器的每个供应商都可以决定显示什么(如果有的话)。没有办法向PDF中添加可以强制查看者显示其他东西(或什么都不显示)的东西。
https://stackoverflow.com/questions/39841480
复制相似问题