在 PDF 文档中,超链接用于跳转到特定页面、外部网站或电子邮件地址,但随着内容的变更,超链接可能需要更新或删除。通过修改 PDF 中的超链接,用户可以确保链接指向最新的页面或移除已失效的链接,从而提升文档的可读性和专业性。本文介绍如何使用 Spire.PDF for Java 在 Java 中更新或删除 PDF 中的超链接。
安装 Spire.PDF for Java
首先,您需要在 Java 程序中添加 Spire.Pdf.jar 文件作为依赖项。JAR 文件可以从此链接下载。如果您使用 Maven,则可以将以下代码添加到项目的 pom.xml 文件中,从而在应用程序中导入 JAR 文件。
<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</artifactId>
        <version>11.10.3</version>
    </dependency>
</dependencies>
Java 更新 PDF 中的超链接
Spire.PDF for Java 提供了 PdfTextWebLinkAnnotationWidget.setUrl() 方法,可用于修改 PDF 中的超链接。以下是具体步骤:
- 创建 PdfDocument 对象。
- 使用 PdfDocument.loadFromFile() 方法加载 PDF 文件。
- 通过 PdfDocument.getPages().get() 方法获取文档的第一页。
- 调用 PdfPageBase.getAnnotationsWidget() 方法获取页面的注释集合。
- 使用 PdfAnnotationCollection.get() 方法获取第一个注释并将其转换为 PdfTextWebLinkAnnotationWidget 对象。
- 通过 PdfTextWebLinkAnnotationWidget.setUrl() 方法修改其 URL 地址。
- 使用 PdfDocument.saveToFile() 方法保存修改后的 PDF 文件。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.annotations.PdfAnnotationCollection;
import com.spire.pdf.annotations.PdfTextWebLinkAnnotationWidget;
public class UpdateHyperlinks {
    public static void main(String[] args) {
                // 创建 PdfDocument 对象
                PdfDocument document = new PdfDocument();
                // 加载 PDF 文件
                document.loadFromFile("示例.pdf");
                // 获取第一页
                PdfPageBase page = document.getPages().get(0);
                // 获取页面的注释集合
                PdfAnnotationCollection widgetCollection = page.getAnnotationsWidget();
                // 获取集合内第一个超链接注释
                PdfTextWebLinkAnnotationWidget uriWidget = (PdfTextWebLinkAnnotationWidget) widgetCollection.get(0);
                // 修改超链接 URL地址
                uriWidget.setUrl("https://www.ccchina.org.cn/");
                // 保存修改后的 PDF 文件
                document.saveToFile("更改超链接.pdf");
                // 关闭 PDF 文档以释放资源
                document.close();
                document.dispose();
    }
}
Java 删除 PDF 中的超链接
Spire.PDF for Java 还提供了 PdfAnnotationCollection.remove() 方法,可用于删除 PDF 中的超链接。需要注意的是,删除超链接后,其外观仍会保留,但链接功能将被移除。以下是具体步骤:
- 创建 PdfDocument 对象。
- 使用 PdfDocument.loadFromFile() 方法加载 PDF 文件。
- 通过 PdfDocument.getPages().get() 方法获取文档的第一页。
- 调用 PdfPageBase.getAnnotationsWidget() 方法获取页面的注释集合。
- 从后往前遍历注释集合,并检查当前注释是否为 PdfTextWebLinkAnnotationWidget 对象。
- 将当前注释转换为 PdfTextWebLinkAnnotationWidget 对象,并使用 PdfAnnotationCollection.remove() 方法将超链接注释从页面中删除。
- 使用 PdfDocument.saveToFile() 方法保存修改后的 PDF 文件。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.annotations.PdfAnnotation;
import com.spire.pdf.annotations.PdfAnnotationCollection;
import com.spire.pdf.annotations.PdfTextWebLinkAnnotationWidget;
public class RemoveHyperlinks {
    public static void main(String[] args) {
        // 创建 PdfDocument 对象
        PdfDocument document = new PdfDocument();
        // 加载 PDF 文件
        document.loadFromFile("示例.pdf");
        // 获取第一页
        PdfPageBase page = document.getPages().get(0);
        // 获取页面的注释集合
        PdfAnnotationCollection widgetCollection = page.getAnnotationsWidget();
        // 检查页面是否有注释
        if (widgetCollection.getCount() > 0) {
            // 反向遍历注释集合
            for (int i = widgetCollection.getCount() - 1; i >= 0; i--) {
                // 获取当前注释
                PdfAnnotation annotation = widgetCollection.get(i);
                // 检查注释是否为文本网页链接
                if (annotation instanceof PdfTextWebLinkAnnotationWidget) {
                    // 将注释强制转换为文本网页链接注释
                    PdfTextWebLinkAnnotationWidget link = (PdfTextWebLinkAnnotationWidget) annotation;
                    // 从集合中删除文本网页链接注释
                    widgetCollection.remove(link);
                }
            }
        }
        // 保存修改后的文档到输出文件
        document.saveToFile("删除超链接.pdf");
        // 关闭 PDF 文档以释放资源
        document.close();
        document.dispose();
    }
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
 



 
					



