Java 在PDF中添加工具提示|ToolTip
本文,将介绍如何通过Java后端程序代码在PDF中创建工具提示。添加工具提示后,当鼠标悬停在页面上的元素时,将显示工具提示内容。
导入jar包
本次程序中使用的是 Free Spire.PDF for Java,具体导入jar文件的方法参考如下内容。
两种方法可导入jar到程序:
方法1. 通过Maven仓库下载导入。在pom.xml配置:
<repositories>
<repository>
<id>com.e-iceblue</id>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf.free</artifactId>
<version>4.4.1</version>
</dependency>
</dependencies>
方法2. 下载 jar包 到本地,解压,找到lib文件夹下的Spire.Pdf.jar文件,然后执行如下图中的步骤导入:



添加工具提示ToolTip
在本次代码中给PDF添加提示工具以查找的指定文本元素为例,主要步骤如下:
- 实例化PdfDocument类的对象,并通过PdfDocument.loadFromFile(String filename)方法加载PDF文档。
- 通过PdfPageBase.findText(String searchPatternText).getFinds()方法查找页面上的指定文本,并获取查找到的文字边界。
- 创建一个PdfButtonField类型的按钮,将大小设置为查找到的文字边界大小;并通过PdfButtonField.setToolTip(String value)方法设置工具提示内容。
- 通过PdfDocument.saveToFile(String filename, FileFormat fileFormat)方法保存PDF文档到指定路径。
Java
import com.spire.pdf.*;
import com.spire.pdf.fields.PdfButtonField;
import com.spire.pdf.fields.PdfButtonLayoutMode;
import com.spire.pdf.general.find.PdfTextFind; import java.awt.geom.Rectangle2D; public class ToolTip {
public static void main(String[] args) {
//加载示例文档
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("test.pdf"); //获取第2页并查找字符串,获取其位置
PdfPageBase page = pdf.getPages().get(1);
PdfTextFind[] result = page.findText("安装与反安装测试").getFinds();
Rectangle2D rec = result[0].getBounds(); //在搜索文本上添加不可见按钮
PdfButtonField field1 = new PdfButtonField(page, "field1");
field1.setBounds(rec);
//设置工具提示文本及样式
field1.setToolTip( "详见文末附件内容及使用手册!");
field1.setBorderWidth(0);
field1.setLayoutMode(PdfButtonLayoutMode.Icon_Only);
field1.getIconLayout().isFitBounds(); //保存文档
pdf.saveToFile("Result.pdf", FileFormat.PDF);
pdf.dispose();
}
}
工具提示添加效果如图:

—End—
Java 在PDF中添加工具提示|ToolTip的更多相关文章
- Java 在PDF 中添加超链接
对特定元素添加超链接后,用户可以通过点击被链接的元素来激活这些链接,通常在被链接的元素下带有下划线或者以不同的颜色显示来进行区分.按照使用对象的不同,链接又可以分为:文本超链接,图像超链接,E-mai ...
- Java 在PDF中添加页面跳转按钮
在PDF 中可通过按钮来添加动作跳转到指定页面,包括跳转到文档首页.文档末页.跳转到上一页.下一页.或跳转到指定页面等.下面将通过java代码来演示如何添加具有以上几种功能的按钮. 使用工具: Fre ...
- Java 在PDF中添加表格
本文将介绍通过Java编程在PDF文档中添加表格的方法.添加表格时,可设置表格边框.单元格对齐方式.单元格背景色.单元格合并.插入图片.设置行高.列宽.字体.字号等. 使用工具:Free Spire. ...
- C# 在PDF中添加墨迹注释Ink Annotation
PDF中的墨迹注释(Ink Annotation),表现为徒手涂鸦式的形状:该类型的注释,可任意指定形状顶点的位置及个数,通过指定的顶点,程序将连接各点绘制成平滑的曲线.下面,通过C#程序代码介绍如何 ...
- Java 在PDF中添加水印
在日常工作和学习中,PDF的普及给人们带来了极大的便利,但同时也出现了很多问题. PDF文件容易复制和传播,版权难以保护. 在海量文件中也很难区分信息,例如,你有没有打开一个文件夹,里面有这么多同名的 ...
- Eclipse中java向数据库中添加数据,更新数据,删除数据
前面详细写过如何连接数据库的具体操作,下面介绍向数据库中添加数据. 注意事项:如果参考下面代码,需要 改包名,数据库名,数据库账号,密码,和数据表(数据表里面的信息) package com.ning ...
- java向文件中添加数据---手动版日志添加
核心代码为创建多级文件夹创建 //目标文件 File file=new File(filePath); //若不存在即创建文件 if(!file.exists()) { if (!file.getPa ...
- 利用百度AI OCR图片识别,Java实现PDF中的图片转换成文字
序言:我们在读一些PDF版书籍的时候,如果PDF中不是图片,做起读书笔记的还好:如果PDF中的是图片的话,根本无法编辑,做起笔记来,还是很痛苦的.我是遇到过了.我们搞技术的,当然得自己学着解决现在的痛 ...
- Java 在Word中添加多行图片水印
Word中设置水印效果时,不论是文本水印或者是图片水印都只能添加单个文字或者图片到Word页面,效果比较单一,本文通过Java代码示例介绍如何在页面中添加多行图片水印效果,即水印效果以多个图片平铺到页 ...
随机推荐
- InnoDB学习(四)之RedoLog和UndoLog
BinLog是MySQL Server层的日志,所有的MySQL存储引擎都支持BinLog.BinLog可以支持主从复制和数据恢复,但是对事务的ACID特性支持比较差.InnoDB存储引擎引入Redo ...
- 从 CPython 源码角度看 Python 垃圾回收机制
环状双向链表 refchain 在 Python 程序中创建的任何对象都会被放到 refchain 链表中,当创建一个 Python 对象时,内部实际上创建了一些基本的数据: 上一个对象 下一个对象 ...
- 人工水母搜索算法—matlab代码
clc clear foj = @ Sphere; Lb = -100; % 搜索空间下界 Ub = 100; % 搜索空间上界 N_iter = 1000; % 最大迭代次数 n_pop = 50; ...
- MH/T4029.3 IFPL报文解析
MH/T4029.3是民航业用来规定飞行计划相关数据交互的规范,今天我们先来解析下其中I类的IFPL报文. 我们先来看看IFPL报文长啥样. ZCZC -TITLE IFPL -FILTIM 0109 ...
- Linux中find命令与三剑客之grep和正则
昨日内容回顾 1.每个月的3号.5号和15号,且这天时周六时 执行 00 00 3,5,15 * 6 2.每天的3点到15点,每隔3分钟执行一次 */3 3-15 * * * 3.每周六早上2点半执行 ...
- CF1473B String LCM 题解
Content 如果一个字符串 \(s\) 由若干个字符串 \(t\) 拼接而成,则我们说 \(s\) 能被 \(t\) 整除.定义 \(s_1,s_2\) 的最短公倍串为可以同时被 \(s_1,s_ ...
- CF1440A Buy the String 题解
Content 有 \(t\) 组询问,每组询问给出一个长度为 \(n\) 的 \(0/1\) 串,你可以花 \(h\) 的代价把 \(0\) 修改成 \(1\) 或者把 \(1\) 修改成 \(0\ ...
- listitems.ListItemCollectionPosition属性为空
SPListItemCollection listitems = list1.GetItems(query);//当执行完上面的代码后,listitems.ListItemCollectionPosi ...
- DKT模型及其TensorFlow实现(Deep knowledge tracing with Tensorflow)
今年2月15日,谷歌举办了首届TensorFlow Dev Summit,并且发布了TensorFlow 1.0 正式版. 3月18号,上海的谷歌开发者社区(GDG)组织了针对峰会的专场回顾活动.本文 ...
- js中字符串和数组的常用转换处理方法
1.split("分割条件(正则表达式或者字符)") 字符串 ==> 数组 默认返回数组 (1) 将单词分割为字符 "hello".split(" ...