Java 展开或折叠PDF中的书签
PDF中的书签功能可快速定位到指定阅读位置。对多层书签可根据阅读喜好设置层级展开或折叠。本文将通过Java程序代码介绍如何来实现PDF书签展开或折叠。
程序环境
- Spire.Pdf.jar( 免费版3.9.0版本)
- JDK1.8.0(版本在1.6.0及更高版本均可)
- IDEA
Jar文件导入(两种方法任选其一):
1. 手动下载jar包导入:下载并解压将lib文件夹下的Spire.Pdf.jar文件添加引用到Java程序;
2. Maven仓库路径中导入:程序中需要配置pom.xml文件,指定maven仓库路径及Spire.Pdf.free的依赖,如下:
<repositories>
<repository>
<id>com.e-iceblue</id>
<url>http://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId> e-iceblue </groupId>
<artifactId>spire.pdf.free</artifactId>
<version>3.9.0</version>
</dependency>
</dependencies>
配置完成后,导入jar到程序。Eclipse中的导入方法参考这里。
Jar导入如图:

Java程序代码
设置展开或者折叠书签时,可针对全文所有书签设置,也可针对某个书签单独设置,代码方法参考如下:
1. 设置全部书签展开(或折叠)
import com.spire.pdf.*;
public class ExpandOrCollapseBookmark {
public static void main(String[] args) {
//加载PDF测试文档
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("sample.pdf");
// 展开所有书签(true为展开,false为折叠)
pdf.getViewerPreferences().setBookMarkExpandOrCollapse(true);
//保存文档
pdf.saveToFile("ExpandAllBookmark.pdf");
pdf.dispose();
}
}
全部书签展开效果:

2. 设置指定书签展开(或折叠)
import com.spire.pdf.*;
import com.spire.pdf.bookmarks.PdfBookmark;
import com.spire.pdf.bookmarks.PdfBookmarkCollection; public class ExpandOrCollapseBookmark {
public static void main(String[] args) {
//加载PDF测试文档
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("sample.pdf"); //设置BookMarkExpandOrCollapse 为 "true" 展开第3个书签
PdfBookmarkCollection pdfBookmark = pdf.getBookmarks().get(2);
((PdfBookmark) pdfBookmark).setExpandBookmark(true); //同时设置展开第3个书签下的子书签(注意:这里展开子书签是展开下一级的书签,并非展开书签中包含的所有多层子书签。展开子书签需要一层一层地展开)
for(int i = 0; i < pdfBookmark.getCount();i++)
{
pdfBookmark.get(i).setExpandBookmark(true);
} //保存文档
pdf.saveToFile("ExpandSpecificBookmarks.pdf");
pdf.close();
}
}
指定书签及子书签展开效果:

阅读推荐:
Java 展开或折叠PDF中的书签的更多相关文章
- Java 添加、提取PDF中的图片
Spire.Cloud.SDK for Java提供了PdfImagesApi接口可用于添加图片到PDF文档addImage().提取PDF中的图片extractImages(),具体操作步骤和Jav ...
- java itext替换PDF中的文本
itext没有提供直接替换PDF文本的接口,我们可以通过在原有的文本区域覆盖一个遮挡层,再在上面加上文本来实现. 所需jar包: 1.先在PDF需要替换的位置覆盖一个白色遮挡层(颜色可根据PDF文字背 ...
- Java 读取PDF中的表格
一.概述 本文以Java示例展示读取PDF中的表格的方法.这里导入Spire.PDF for Javah中的jar包,并使用其提供的相关及方法来实现获取表格中的文本内容.下表中整理了本次代码使用到的主 ...
- java 如何在pdf中生成表格
1.目标 在pdf中生成一个可变表头的表格,并向其中填充数据.通过泛型动态的生成表头,通过反射动态获取实体类(我这里是User)的get方法动态获得数据,从而达到动态生成表格. 每天生成一个文件夹存储 ...
- Java 使用PDFBox提取PDF文件中的图片
今天做PDF文件解析,遇到一个需求:提取文件中的图片并保存.使用的是流行的apache开源jar包pdfbox, 但还是遇到坑了,比如pdfbox版本太高或太低都不能用!!这个包竟然没有很好地做好兼容 ...
- Java 在PDF 中添加超链接
对特定元素添加超链接后,用户可以通过点击被链接的元素来激活这些链接,通常在被链接的元素下带有下划线或者以不同的颜色显示来进行区分.按照使用对象的不同,链接又可以分为:文本超链接,图像超链接,E-mai ...
- java 用PDFBox 删除 PDF文件中的某一页
依赖: <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox-app ...
- Java 读取PDF中的文本和图片
本文将介绍通过Java程序来读取PDF文档中的文本和图片的方法.分别调用方法extractText()和extractImages()来读取. 使用工具:Free Spire.PDF for Ja ...
- 利用百度AI OCR图片识别,Java实现PDF中的图片转换成文字
序言:我们在读一些PDF版书籍的时候,如果PDF中不是图片,做起读书笔记的还好:如果PDF中的是图片的话,根本无法编辑,做起笔记来,还是很痛苦的.我是遇到过了.我们搞技术的,当然得自己学着解决现在的痛 ...
- Java 在PDF中添加页面跳转按钮
在PDF 中可通过按钮来添加动作跳转到指定页面,包括跳转到文档首页.文档末页.跳转到上一页.下一页.或跳转到指定页面等.下面将通过java代码来演示如何添加具有以上几种功能的按钮. 使用工具: Fre ...
随机推荐
- 中山市 香山杯2023 Misc pintu
大便题目啊,跟拼图没有半毛钱关系 附件给我们4703张图片,而且给了tip:8->10,且这些图片的宽度都是一样的. 首先我们考虑将黑色图片当作0,白色图片当作1,将这些按编号顺序将这些图片转成 ...
- 新手面对安卓6.0以上的版本时出现一个关于文件权限检测的问题,报错为:“无法解析符号 'checkSelfPermission'”,解决办法
[[注意]:这只是笔者在遇到这个问题时的解决方法,如果对您毫无帮助,请自寻他法!!!] 面对新手:在简单做一个音乐播放程序时,如果面对安卓6.0以上的版本,就会出现一个关于文件权限检测的问题,报错为: ...
- Kafka基本原理、生产问题总结及性能优化实践
Kafka是最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量 ...
- 服务器没有开放3306端口 远程访问MySQL数据库方法
一.前言 当装有MySQL的服务器为了防止数据库被黑,提高安全性,把3306端口禁止掉,禁止对外访问,我之前写过一篇是借助跳板机的SSH隧道来访问实现安全,这种情况依然需要开放3306端口和使用一 ...
- Xmind思维导图工具2023最新专业版破解思路
工具介绍 XMind 是一款最为流行的专业级思维_导图_制作与编辑软件,它现在在全球范围内都已极具名气,可谓是办公.学习.团队交流必备工具之一. 准备工作 1,官方Xmind软件 2,一个心意的编辑器 ...
- Redis宕机恢复
AOF(Append Only File) Redis持久化:AOF日志 用 AOF 方法进行故障恢复的时候,需要逐一把操作日志都执行一遍.如果操作日志非常多,Redis 就会恢复得很缓慢,影响到正常 ...
- 3.1 IDA Pro编写IDC脚本入门
IDA Pro内置的IDC脚本语言是一种灵活的.C语言风格的脚本语言,旨在帮助逆向工程师更轻松地进行反汇编和静态分析.IDC脚本语言支持变量.表达式.循环.分支.函数等C语言中的常见语法结构,并且还提 ...
- Vue打包发布
打包发布 目标:明确打包的作用 说明:vue脚手架只是开发过程中,协助开发的工具,当真正开发完了,脚手架不参与上线 打包的作用: 将多个文件压缩合并成一个文件 语法降级 less sass ts 语法 ...
- 金蝶对接电商ERP库存数据,实现监听库存变化
金蝶云星空实时库存专题 通过向金蝶库存单据注册Python脚本,用于实时监听库存单据审核/反审核,并且将数据发送到轻易云系统集成平台 .通过集成平台将数据分发到对应的目标系统. 向金蝶的库存单据注册脚 ...
- PageHelper插件注意事项
PageHelper插件注意事项 使用PageHelper.startPage后要紧跟查询语句 下面的代码就有可能出问题: PageHelper.startPage(10, 10); if(param ...