首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ITextPDF -用PDFAnnotation创建链接

ITextPDF -用PDFAnnotation创建链接
EN

Stack Overflow用户
提问于 2016-10-03 22:37:26
回答 1查看 997关注 0票数 0

我有一个问题,在pdf文件与itext创建的超链接。目前,使用以下用java编写的代码,我能够成功地创建链接。但是,当我悬停在链接上时,就会显示链接文本。客户端不希望链接文本出现在悬停状态下。我怎样才能移除悬停,或者给它交替的文本来显示。“课程信息”)?我正在使用itext版本5.5.9。我看过"iText in Action“第7章,但没有找到我需要的东西。有没有更好的方法来创建链接?任何帮助和例子都将不胜感激。谢谢。

代码语言:javascript
复制
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);
    }
}
EN

回答 1

Stack Overflow用户

发布于 2016-10-04 08:33:37

这不是iText问题。这是PDF所固有的。PDF规范(ISO-32000-1)没有提到查看器应该如何提供链接注释的工具提示。

您的客户(可能也应该是我们的客户)可能会被以下概念所混淆:

附加操作

当E (enter)和X (exit)事件在关于附加操作的部分中描述时,“工具提示”一词的唯一出现在注释中。您可以使用其他操作,例如,在小部件注释上,当有人在小部件注释上盘旋时,会出现/消失自定义工具提示。

当您研究PDF标准时,您将看到有几个实例可以定义附加操作(/AA),但是链接注释不是其中之一。

可选字段名

还有一个/TU条目(以前称为用户名条目),它是一个替代的字段名(我引用规范),在用户界面中标识字段的任何地方都将使用它来代替实际的字段名(例如,引用该字段的错误消息或状态消息)。在提取文档内容以支持残疾用户无障碍访问或其他目的时,此文本也很有用。/TU条目的值经常被查看者用作工具提示,但是从描述中可以看出,/TU条目是特定于字段的,而不是针对注释的。它只能在字段字典中使用,而不能在注释字典中使用。

结论:

当有人在链接注释上徘徊时所显示的任何内容都不会在规范中描述。当用户悬停在链接注释上时,PDF查看器的每个供应商都可以决定显示什么(如果有的话)。没有办法向PDF中添加可以强制查看者显示其他东西(或什么都不显示)的东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39841480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档