`

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中的导入方法参考这里

 

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();
    }
}

 

 

0
1
分享到:
评论

相关推荐

    Java在Excel中创建多级分组、折叠或展开分组的实现

    在Excel中,分组可以对行或列进行分组,并设置明细数据是否展开或折叠。本文将介绍通过Java程序在Excel创建分组的方法,并提供具体的代码示例。 Java在Excel中创建多级分组、折叠或展开分组的实现方法主要有两种:...

    pdf文件书签折叠工具工具.rar

    因此,如果需要将这种折叠状态分享给他人,通常需要导出或打印带有折叠书签的视图,或者通过特定的PDF阅读器支持来共享这种状态。 PDF书签折叠工具的出现,充分体现了技术对提升用户体验的重视。对于那些经常处理...

    JAVA SWING可折叠菜单

    在Swing中,可折叠菜单是一种提高用户界面交互性的功能,它允许用户隐藏或显示菜单项,以减少屏幕上的视觉混乱并使界面更加简洁。本文将深入探讨如何在Java Swing中实现可折叠菜单。 首先,让我们了解菜单的基础...

    java 代码块折叠插件

    3. **快速展开和折叠**:通过快捷键或者鼠标操作,可以迅速展开或折叠代码块,方便在不同层次间切换。 4. **增强代码导航**:通过折叠,可以更快地定位到关键代码部分,减少视觉干扰。 5. **代码审查**:在代码审查...

    折叠树的展开和折叠折叠

    本文将深入探讨树的展开和折叠操作,以及它们在实际应用中的价值。 首先,我们来理解树的基本概念。树是由节点(或称为顶点)和边构成的非线性数据结构,每个节点可以有零个或多个子节点。在计算机科学中,根节点是...

    java eclipse代码折叠 插件

    3. 使用插件:在代码编辑器中,用户可以使用预设的快捷键或者右键菜单来展开或折叠代码块。自定义的折叠区域可以通过特定的标记(如`#region`和`#endregion`)来创建。 在实际开发中,代码折叠插件带来的益处主要...

    TreeTable,用于展开/折叠table的行

    例如,一个电子商务平台可能需要展示商品分类,其中每个大类下面又包含多个子类,TreeTable可以很好地呈现这种层次结构,用户可以通过展开或折叠行来查看或隐藏下级类别。 TreeTable的主要特性包括: 1. **层次...

    DataTables(二) —— 行分组信息展开与折叠的功能实现

    行分组功能允许用户将相关的数据行聚合在一起,通过点击加号(+)或减号(-)进行展开或折叠,极大地提高了数据的可读性和交互性。 1. **DataTables介绍** DataTables 是一个基于jQuery的开源插件,旨在为HTML表格...

    java 折叠代码工具

    2. **自动折叠**:在设置中,可以配置MyEclipse使其在打开文件时自动折叠特定类型的代码块,如注释、导入语句或私有方法。 3. **代码折叠视图**:MyEclipse还提供了一个专门的折叠视图,展示当前文件的所有可折叠...

    ExpandableListView展开折叠动画效果

    在给定的标题和描述中提到的“展开折叠动画效果”,是指在`ExpandableListView`中,当用户点击一个组(group)时,其子项(child)以动画的形式展开或折叠,增强用户体验。 要实现这种动画效果,开发者通常需要...

    QTableView 切换折叠展开图标

    5. **更新模型和视图**:在槽函数中,更新模型的状态(展开或折叠特定节点),然后调用`model()-&gt;emitDataChanged(index)`来通知视图数据已改变。视图会自动请求重新绘制受影响的行。 6. **布局调整**:为了正确地...

    eclipse java 代码块折叠插件

    eclipse java 代码块折叠插件,可以用对if、for、while、function 等代码块折叠,类似vs IDE。 使用方法: (1)解压; (2)将 com.cb.eclipse.folding_1.0.6.jar 拷贝到eclipse 安装目录的插件目录(plugins目录)...

    textview的展开和折叠

    // 检查是否需要展开或折叠逻辑... } } ``` 在实现展开和折叠的过程中,我们还需要关注一些细节: - **动画效果**:为了使展开和折叠过程更加平滑,可以添加动画,如线性渐变的alpha或高度变化。 - **点击事件...

    iOS tableview 多级展开,折叠,防qq效果

    "iOS tableview 多级展开,折叠,防qq效果"指的是在UITableView中实现类似QQ聊天界面那样的树形结构,用户可以点击单元格展开或折叠其子节点,同时保持界面流畅且美观。 首先,我们需要了解UITableView的基本工作...

    FloatingActionButton实现 展开/折叠 的多级悬浮菜单

    在标题“FloatingActionButton实现 展开/折叠 的多级悬浮菜单”中,我们探讨的是如何利用`FAB`来创建一个可展开和折叠的多级菜单,这在许多应用程序中都有应用,如设置菜单、导航菜单等。以下将详细讲解这个实现过程...

    vue多级复杂列表展开/折叠及全选/分组全选实现

    例如,点击父级展开或折叠子项时,我们可以更改`isOpenItem`中对应的值。点击全选按钮时,我们可以更新`isSelectAll`数组,以此来控制子项的选中状态。 响应数据变化和更新DOM是Vue的一个重要特性。在前面提到的...

    VB点击展开的折叠面板(或折叠菜单组).rar

    VB点击展开的折叠面板(或折叠菜单组),鼠标点击蓝色的标题部分,会显示出所属的二级菜单内容,二级菜单中可以是一个表格、或一个列表、或一张图片、或一段文字,其实很像是一个面板一样,点击后展开,再此点击后...

    datatable实现多级展开和折叠

    `Datatable`的多级展开和折叠功能允许用户通过点击行来显示或隐藏其子级数据,这样可以更有效地管理和浏览大量数据。以下将详细介绍如何实现这一功能: 1. **安装和引入Datatable**: 首先,你需要在项目中安装`...

    内容块展开折叠组件

    在"展开折叠"组件中,`&lt;pre&gt;`内容块是主要操作的对象,用户可以点击一个触发器来展开或折叠其中的内容。 要实现这样的组件,开发者通常会用到JavaScript或者jQuery库,结合CSS样式来完成。JavaScript用于监听用户的...

    winform保持TreeView节点展开和折叠的状态

    winform保持TreeView节点展开和折叠的状态 只需调用两个方法即可非常方面

Global site tag (gtag.js) - Google Analytics