首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何导出jasper报告在pdf生成工具提示的锚的?

如何导出jasper报告在pdf生成工具提示的锚的?
EN

Stack Overflow用户
提问于 2016-01-04 11:30:23
回答 1查看 905关注 0票数 0

在jasper中,我使用锚的hyperlinkTooltipExpression

示例代码:

代码语言:javascript
运行
复制
 <textField hyperlinkType="LocalAnchor">
            <reportElement x="267" y="94" width="100" height="30" uuid="8fa9ce3d-015c-4d13-a677-3b9dbea4c222"/>
            <textFieldExpression><![CDATA["Anchor Target"]]></textFieldExpression>
            <hyperlinkAnchorExpression><![CDATA["expert"]]></hyperlinkAnchorExpression>
            <hyperlinkTooltipExpression><![CDATA["expert"]]></hyperlinkTooltipExpression>
        </textField>

这适用于IDE预览,但如果导出到PDF中,工具提示的工具提示没有显示在Adobe中,在文档查看器(linux)中显示,而是用es显示。“转到x页”

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-04 12:06:07

在jasper中,我找不到任何支持在超级链接( JasperReport源代码 )上生成工具提示。

但是,您可以在手动生成注释的setHyperlinkInfo上重写JRPdfExporter

关于如何在LocalAnchor上生成工具提示的示例

代码语言:javascript
运行
复制
JRPdfExporter exporter = new JRPdfExporter() {
    @Override
    protected void setHyperlinkInfo(Chunk chunk, JRPrintHyperlink link) {
        if (link!=null && link.getHyperlinkTooltip() != null && HyperlinkTypeEnum.LOCAL_ANCHOR.equals(link.getHyperlinkTypeValue())) {
            PdfFormField pushButton = PdfFormField.createPushButton(pdfWriter);
            pushButton.setFieldName(String.format("tt%s", chunk.hashCode()));//Need's unique name if multiple
            Rectangle rect = new Rectangle(0, 0, 0, 0);
            pushButton.setWidget(rect, PdfAnnotation.HIGHLIGHT_NONE);
            pushButton.put(PdfName.TU, new PdfString(link.getHyperlinkTooltip(), PdfObject.TEXT_UNICODE));
            chunk.setAnnotation(pushButton);
            if (link.getHyperlinkAnchor() != null){                         
               pushButton.setAction(PdfAction.gotoLocalPage(link.getHyperlinkAnchor(), false));
            }
            return;         
        }
        super.setHyperlinkInfo(chunk, link);
    }
};

若要在其他类型的hyperlinkType (Reference,Remote )上生成工具提示,请继续类似的实现。

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

https://stackoverflow.com/questions/34590151

复制
相关文章

相似问题

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