Java在PDF中查找文本并为其添加超链接
前言
超链接是指链接到另一个文件或对象的图标、图形或文本。它是操作文档最常用的功能之一。Spire.PDF for Java支持创建一个新的PDF文档并向其添加各种超链接,包括普通链接、超文本链接、电子邮件链接和文档链接。本文将告诉你如何在现有的PDF中为特定文本添加超链接。
【程序环境】
安装Spire.PDF for Java
首先,你需要在你的Java程序中添加Spire.Pdf.jar文件作为一个依赖项。该JAR文件可以从这个链接下载。如果你使用Maven,则可以通过在项目的pom.xml文件中添加以下代码轻松导入JAR文件。
1 <repositories> 2 <repository> 3 <id>com.e-iceblue</id> 4 <name>e-iceblue</name> 5 <url> https://repo.e-iceblue.cn/repository/maven-public /</url> 6 </repository> 7 </repositories> 8 <dependencies> 9 <dependency> 10 <groupId>e-iceblue</groupId> 11 <artifactId>spire.pdf</artifactId> 12 <version>8.9.1</version> 13 </dependency> 14 </dependencies>
注意:请保持上面代码中的版本号与下载链接中的一致,以体验新功能或避免BUG
在PDF中查找文本并为其添加超链接
【步骤】
- 创建一个PdfDocument实例,并使用PdfDocument.loadFromFile()方法加载一个样本PDF文档。
- 使用PdfDocument.getPages().get()方法获取文档的一个特定页面。
- 使用PdfPageBase.findText(String searchPatternText, boolean isSearchWholeWord)方法查找页面中所有匹配的文本,并返回一个PdfTextFindCollection对象。
- 根据特定查找结果的边界,创建一个PdfUriAnnotation实例。
- 使用PdfUriAnnotation.set(String value)方法为注释设置一个URL地址,并同时设置它的边框和颜色。
- 使用PdfPageBase.getAnnotationWidget().add()方法将URL注解作为一个新的注解添加到PDF注解集合中。
- 使用PdfDocument.saveToFile()方法保存文档。
【代码示例】
import com.spire.pdf.*; import com.spire.pdf.annotations.*; import com.spire.pdf.general.find.*; import com.spire.pdf.graphics.PdfRGBColor; import java.awt.*; public class SearchTextAndAddHyperlink { public static void main(String[] args) { //创建一个PdfDocument实例 PdfDocument pdf = new PdfDocument(); //加载一个样本PDF文档 pdf.loadFromFile("C:\\Users\\Test1\\Desktop\\sample.pdf"); //得到第一页 PdfPageBase page = pdf.getPages().get(0); //查找页面中所有匹配的文本,并返回一个PdfTextFindCollection对象 PdfTextFindCollection collection = page.findText("Spire.PDF for Java", false); //loop through the find collection循环浏览查找到的集合 for(PdfTextFind find : collection.getFinds()) { //创建一个PdfUriAnnotation实例为搜索到的文本添加超链接 PdfUriAnnotation uri = new PdfUriAnnotation(find.getBounds()); uri.setUri("https://www.e-iceblue.com/Introduce/pdf-for-java.html"); uri.setBorder(new PdfAnnotationBorder(1f)); uri.setColor(new PdfRGBColor(Color.blue)); page.getAnnotationsWidget().add(uri); } //保存文档 pdf.saveToFile("output/searchTextAndAddHyperlink.pdf"); } }
【效果图】
注:该JAR包分为免费版和商业版,免费版没有水印或评估信息,但是有篇幅和大小限制,商业版有水印或评估信息,没有篇幅限制,想要去除这些评估信息,需要应用license,可以点击这里获取30天免费license。
---THE END---
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)