利用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异步编程之一文看完其异步函数表
2021-12-25 10:57:39
java 避免出现NullPointerException(空指针)的方法总结
2022-08-31 04:15:51
浅谈Android Studio如何Debug对应so文件C/C++代码
2023-11-20 03:23:35
Struts2 $,#,%详解及实例代码
2021-09-10 04:18:40
MyBatis Xml映射文件之字符串替换方式
2022-03-23 00:06:39
详解Java异常处理中finally子句的运用
2023-11-29 10:10:30
Android提醒微技巧你真的了解Dialog、Toast和Snackbar吗
2023-03-08 14:15:44
Android引导页面的简单实现
2023-08-06 04:24:32
C语言时间函数之strftime()详解
2023-06-26 02:42:32
Java Socket编程实例(四)- NIO TCP实践
2021-10-07 13:44:35
Android RecyclerView添加搜索过滤器的示例代码
2022-03-08 21:44:49
java如何用Processing生成马赛克风格的图像
2023-11-07 20:52:44
springmvc 中dao层和service层的区别说明
2022-07-26 00:55:41
SpringBoot下如何实现支付宝接口的使用
2023-11-06 14:26:15
JavaWeb使用Cookie模拟实现自动登录功能(不需用户名和密码)
2021-09-06 00:15:03
java文件操作练习代码 读取某个盘符下的文件
2023-11-12 06:34:07
解析C#编程的通用结构和程序书写格式规范
2022-12-22 03:41:41
C#使用timer实现的简单闹钟程序
2023-07-30 00:24:28
SpringCloud:feign对象传参和普通传参及遇到的坑解决
2023-02-17 11:18:58
Java 设计模式中的策略模式详情
2023-08-06 03:45:11