Java 更新和删除PDF中的超链接

Posted Tobemia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 更新和删除PDF中的超链接相关的知识,希望对你有一定的参考价值。

PDF文档中可对指定文字内容添加超链接,通过鼠标点击动作可跳转至链接的地址。对文档中已有的超链接,如果需要进行编辑或者删除等操作,可参考本文中的方法来​​更新PDF文档中已有的超链接​​​,以及如何​​删除超链接​​。下面是详细方法及步骤,供参考。

【导入jar】

本次代码中使用​​Free Spire.PDF for Java​​。

可按照如下方法来导入Spire.Pdf.jar 版本:5.1.0

方法1:将Free Spire.PDF for Java包​​下载​​到本地,解压,找到lib文件夹下的Spire.Pdf.jar文件。然后在IDEA中打开“Project Structure”界面,然后执行如图步骤来手动导入本地路径下的jar文件:

Java

方法2:通过​​Maven仓库​​下载导入,如下配置pom.xml:

<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.pdf.free</artifactId>
<version>5.1.0</version>
</dependency>
</dependencies>

【Java示例】

1.更新超链接

Spire.PDF for Java 提供了PdfUriAnnotationWidget.setUri(String value)方法可直接重置已有的超链接地址。下面是实现更新超链接的代码步骤:

  • 创建PdfDocument类的对象。
  • 调用PdfDocument.loadFromFile(String fileName)方法加载PDF文档。
  • 通过PdfDocument.getPages().get(int index)方法获取指定页面。
  • 通过PdfPageBase.getAnnotationWidget()方法获取所有超链接集合。
  • 使用PdfUriAnnotationWidget.setUri(String value)方法设置新的超链接地址。
  • 最后,通过PdfDocument.saveToFile(String filename, FileFormat fileFormat)方法保存文档到指定路径。

Java

import com.spire.pdf.*;
import com.spire.pdf.annotations.PdfAnnotationCollection;
import com.spire.pdf.annotations.PdfUriAnnotationWidget;

public class UpdateHyperlink
public static void main(String[] args) throws Exception
//加载PDF文档
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("test.pdf");

//获取PDF中的指定页面
PdfPageBase page = pdf.getPages().get(0);

//获取超链接,更改链接地址
PdfAnnotationCollection widgetCollection = page.getAnnotationsWidget();
PdfUriAnnotationWidget uri = (PdfUriAnnotationWidget) widgetCollection.get(0);
uri.setUri("https://123456.com");

//保存文档
pdf.saveToFile("UpdateHyperlinks.pdf");
pdf.dispose();

2.删除超链接

删除超链接时,可通过PdfAnnotationCollection.removeAt(int index)方法删除指定的超链接,或者通过PdfAnnotationCollection.clear()方法删除文档中的所有超链接。下面是删除超链接的代码步骤:

  • 创建PdfDocument类的对象。
  • 调用PdfDocument.loadFromFile(String fileName)方法加载PDF文档。
  • 通过PdfDocument.getPages().get(int index)方法获取指定页面。
  • 通过PdfPageBase.getAnnotationWidget()方法获取所有超链接集合。
  • 通过PdfAnnotationCollection.removeAt(int index)方法删除指定超链接。
  • 通过PdfAnnotationCollection.clear()方法删除所有超链接。
  • 最后,通过PdfDocument.saveToFile(String filename, FileFormat fileFormat)方法保存文档到指定路径。

Java

import com.spire.pdf.*;
import com.spire.pdf.annotations.*;

public class RemoveHyperlinks
public static void main(String[] args)
//加载PDF
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("test.pdf");

//获取PDF中的指定页面
PdfPageBase page = pdf.getPages().get(0);

//获取所有的PDF 超链接集合
PdfAnnotationCollection widgetCollection = page.getAnnotationsWidget();
widgetCollection.removeAt(1);//删除第2个超链接
//widgetCollection.clear();//删除所有超链接

//保存文档
pdf.saveToFile("RemoveHyperlinks.pdf");
pdf.dispose();


—END—

以上是关于Java 更新和删除PDF中的超链接的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 python 更改 pdf 中的超链接?

ExtJs 4:如何在一个请求中发送所有修改、新和删除的记录?

如何使用PDF编辑器的超链接工具?

如何使用PDF编辑器的超链接工具?

为啥文档中的超链接会导致找不到页面

删除 s-s-rS 中的超链接格式