Java如何在PDF中添加ToolTip工具提示
作者:Tobemia 时间:2021-12-31 12:12:53
前言
本文,将介绍如何通过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();
}
}
工具提示添加效果如图:
来源:https://blog.51cto.com/miayo/4966045
标签:Java,ToolTip
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
新的Java访问mysql数据库工具类的操作代码
2023-04-05 16:54:58
解决spring.thymeleaf.cache=false不起作用的问题
2022-03-25 04:27:15
![](https://img.aspxhome.com/file/2023/5/63285_0s.png)
Java事务管理学习之Spring和Hibernate详解
2023-04-11 00:01:25
![](https://img.aspxhome.com/file/2023/4/62684_0s.png)
Java算法实战之排一亿个随机数
2022-11-22 02:47:26
![](https://img.aspxhome.com/file/2023/4/60694_0s.png)
使用SpringBoot+EasyExcel+Vue实现excel表格的导入和导出详解
2023-07-18 18:15:14
关于eclipse中运行tomcat提示端口被占用的4种解决
2022-04-15 10:56:12
一篇文章带你入门Java数据类型
2022-06-10 09:25:44
![](https://img.aspxhome.com/file/2023/8/62338_0s.jpg)
JavaMail入门教程之解析邮件(5)
2023-11-29 08:25:13
![](https://img.aspxhome.com/file/2023/0/60030_0s.jpg)
Java Swing实现让窗体居中显示的方法示例
2023-11-06 02:59:07
![](https://img.aspxhome.com/file/2023/1/63331_0s.png)
浅谈Spring中Bean的作用域、生命周期
2023-11-14 02:44:21
![](https://img.aspxhome.com/file/2023/7/59567_0s.png)
Java设计模式之职责链模式详解
2023-01-26 21:16:26
![](https://img.aspxhome.com/file/2023/3/64953_0s.jpg)
详解spring注解式参数校验
2023-05-08 15:28:52
java精度计算代码 java指定精确小数位
2023-07-31 03:03:58
![](https://img.aspxhome.com/file/2023/4/71004_0s.jpg)
Spring Cache框架应用介绍
2023-06-15 22:32:59
![](https://img.aspxhome.com/file/2023/2/57492_0s.png)
SpringBoot注解梳理(小结)
2023-11-10 13:27:19
Java如何给Word文档添加多行文字水印
2023-11-10 07:40:58
![](https://img.aspxhome.com/file/2023/2/58922_0s.png)
JAVA基础之注解与反射的使用方法和场景
2022-02-23 19:50:00
![](https://img.aspxhome.com/file/2023/8/65778_0s.jpg)
springmvc后台基于@ModelAttribute获取表单提交的数据
2023-08-05 12:29:35
![](https://img.aspxhome.com/file/2023/7/71657_0s.jpg)
java类加载相关知识总结
2023-10-19 13:31:57
![](https://img.aspxhome.com/file/2023/4/70514_0s.png)
java语言自行实现ULID过程底层原理详解
2023-04-13 22:38:50
![](https://img.aspxhome.com/file/2023/7/69097_0s.png)