java 读取pdf_Java PDF书签——添加、编辑、删除、读取书签

概述

本文介绍通过Java程序来操作PDF书签,根据对书签的不同操作要求,分以下情况来介绍:

1. 添加书签(包括添加一级书签、多级子书签)

2. 编辑书签(包括重置书签标题、书签样式等)

3. 删除书签(包括删除所有书签、删除子书签等)

4. 读取书签

工具使用

程序使用辅助工具:Free Spire.PDF for Java(免费版),

方法1:可下载jar包,解压并将lib文件夹下的jar文件导入java程序(手动导入)

jar包​www.e-iceblue.cn

方法2: 通过创建Maven项目程序,在pom.xml中配置maven仓库路径并指定Free Spire.PDF for Java 的依赖,配置完成后,在IDEA中,点击“Import Changes”导入JAR包:

<repositories>
        

(Ecllipse的导入方法,参考下面这篇文章)

通过 Maven 仓库安装 Spire 系列 Java 产品​www.e-iceblue.cn
68c5c81f6c9e75bc1303549797caaed1.png

jar导入结果如下图所示:

1a5b2d609f4ba51cafb7272c48403a5a.png

代码示例

1. 添加书签到PDF

import 

431f4b289970c9f7466859cbae18adce.png

2. 编辑PDF中已有的书签

import 

02fb8e4cab7385e8b8691d46a39949c4.png

3. 删除PDF中的书签

import 

4. 读取PDF中的书签

import 

书签读取结果:

cf48caa436681cf230c79f4af47fc09c.png

(完)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用Apache POI库来读取添加删除Word文档中的书签。下面是一个简单的示例代码,用于读取文档中的书签: ```java import java.io.FileInputStream; import java.io.IOException; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; public class ReadBookmarks { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("sample.docx"); XWPFDocument document = new XWPFDocument(fis); // Get all paragraphs in the document List<XWPFParagraph> paragraphs = document.getParagraphs(); // Loop through all paragraphs for (XWPFParagraph paragraph : paragraphs) { // Get all runs in the paragraph List<XWPFRun> runs = paragraph.getRuns(); // Loop through all runs for (XWPFRun run : runs) { // Check if the run contains a bookmark if (run.getCTR().getBookmarkStartList() != null) { // Loop through all bookmarks in the run for (CTBookmark bookmark : run.getCTR().getBookmarkStartList()) { // Print the name of the bookmark System.out.println("Bookmark: " + bookmark.getName()); } } } } // Close the document document.close(); fis.close(); } catch (IOException | InvalidFormatException ex) { ex.printStackTrace(); } } } ``` 这个代码将打开名为“sample.docx”的Word文档,并遍历文档中的所有段落和运行。如果运行包含书签,则它将打印书签的名称。 要添加书签,您可以使用以下代码: ```java import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; public class AddBookmark { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("sample.docx"); XWPFDocument document = new XWPFDocument(fis); // Get the first paragraph in the document XWPFParagraph paragraph = document.getParagraphs().get(0); // Create a new run in the paragraph XWPFRun run = paragraph.createRun(); // Add text to the run run.setText("This is a bookmark"); // Add a bookmark to the run run.getCTR().addNewBookmarkStart().setName("bookmark1"); run.getCTR().addNewBookmarkEnd(); // Save the document FileOutputStream fos = new FileOutputStream("sample.docx"); document.write(fos); // Close the document document.close(); fis.close(); fos.close(); } catch (IOException | InvalidFormatException ex) { ex.printStackTrace(); } } } ``` 这个代码将在文档的第一个段落中创建一个新的运行,并将一个名为“bookmark1”的书签添加到该运行中。 要删除书签,您可以使用以下代码: ```java import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; public class DeleteBookmark { public static void main(String[] args) { try { FileInputStream fis = new FileInputStream("sample.docx"); XWPFDocument document = new XWPFDocument(fis); // Get the first paragraph in the document XWPFParagraph paragraph = document.getParagraphs().get(0); // Loop through all runs in the paragraph for (XWPFRun run : paragraph.getRuns()) { // Check if the run contains a bookmark if (run.getCTR().getBookmarkStartList() != null) { // Loop through all bookmarks in the run for (CTBookmark bookmark : run.getCTR().getBookmarkStartList()) { // Check if the bookmark has the name "bookmark1" if (bookmark.getName().equals("bookmark1")) { // Remove the bookmark from the run run.getCTR().removeBookmark(bookmark); } } } } // Save the document FileOutputStream fos = new FileOutputStream("sample.docx"); document.write(fos); // Close the document document.close(); fis.close(); fos.close(); } catch (IOException | InvalidFormatException ex) { ex.printStackTrace(); } } } ``` 这个代码将遍历文档的第一个段落中的所有运行,并删除名称为“bookmark1”的书签

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值