利用Java实现在PDF中添加工具提示
作者:E-iceblue 时间:2022-08-07 18:47:02
本文,将介绍如何通过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://www.cnblogs.com/Yesi/p/15788144.html
标签:Java,PDF,提示
0
投稿
猜你喜欢
Java加载资源文件时的路径问题的解决办法
2023-05-09 23:22:40
UnityShader使用速度映射图实现运动模糊
2021-11-23 03:53:21
Java BigDecimal除法精度和格式化输出方式
2023-01-06 01:03:42
RxJava2.x实现定时器的实例代码
2023-08-06 17:41:01
初识Spring Boot框架之Spring Boot的自动配置
2022-08-25 10:27:57
浅谈用java实现事件驱动机制
2022-07-12 18:06:03
Android图片处理:识别图像方向并显示实例教程
2023-02-11 08:01:07
详解JAVA中的for-each循环与迭代
2022-05-11 12:29:14
浅谈JVM垃圾回收有哪些常用算法
2022-02-28 16:51:56
解析使用enumerator模式简化异步操作的详解
2021-10-08 01:44:54
Android实现短信验证码获取自动填写功能(详细版)
2022-07-22 07:08:10
Android UI 实现老虎机详解及实例代码
2022-06-09 05:01:30
SpringBoot整合mybatis-plus进阶详细教程
2023-11-27 05:13:12
java通过JFrame做一个登录系统的界面完整代码示例
2023-11-06 05:18:32
判断图片-判断位图是否是黑白图片的方法
2023-06-09 17:20:07
解读java try catch 异常后还会继续执行吗
2022-05-11 01:25:24
java控制线程运行
2023-03-05 15:35:30
Android 实现当下最流行的吸顶效果
2021-12-30 18:46:33
C# readnodefile()不能读取带有文件名为汉字的osg文件解决方法
2021-11-08 07:41:00
Java 实现一个汉诺塔实战练习
2021-12-20 14:49:47