zoukankan      html  css  js  c++  java
  • 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();
        }
    }

    指定书签及子书签展开效果:

    阅读推荐:

  • 相关阅读:
    python
    python
    python
    Django学习手册
    python
    Django学习手册
    [ThinkPHP] 独立分组配置,坑!!!
    vim 代码片段:通过vundle插件管理器安装ultisnips |centos6.5|vim7.2
    CESHI
    thinkphp实现功能:验证码
  • 原文地址:https://www.cnblogs.com/Yesi/p/14178772.html
Copyright © 2011-2022 走看看