Java 在PDF中创建多级编号列表

PDF中可添加符号列表或者编号列表,其中添加编号列表时,为表现所列内容的上下级、从属、包含等逻辑关系,也可以按需设置为多级编号列表,本文就将以Java代码示例来介绍如何创建多级编号列表。具体内容如下。

1. 程序环境

● 代码编译器:IntelliJ IDEA

● JDK:1.8.0

● PDF jar包:free spire.pdf.jar 4.4.1

关于如何导入jar:

Method 1:手动导入,如图(需先下载jar包,并解压)

Method 2:maven仓库下载导入。在创建好的Maven程序后,在pom.xml文件中配置如下内容:

<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>4.4.1</version>

</dependency>

</dependencies>

点击“Import Changes”导入,如图


2. Java 代码

import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import com.spire.pdf.lists.PdfListItem;
import com.spire.pdf.lists.PdfOrderedMarker;
import com.spire.pdf.lists.PdfSortedList;

import java.awt.*;
import java.awt.geom.Point2D;

public class List2 {
    public static void main(String[] args) {
        //创建PdfDocument对象
        PdfDocument pdf = new PdfDocument();

//设置页边距
        PdfMargins margin = new PdfMargins(60, 60, 40, 40);

//添加一页
        PdfPageBase page = pdf.getPages().add(PdfPageSize.A4, margin);

//初始化x,y坐标
        float x = 0;
        float y = 15;

//创建画刷
        PdfBrush blackBrush = PdfBrushes.getBlack();
        PdfBrush orangeBrush = PdfBrushes.getOrange();
        PdfBrush greenBrush = PdfBrushes.getLimeGreen();

//创建两个字体
        PdfTrueTypeFont titleFont = new PdfTrueTypeFont(new Font("微软雅黑",Font.BOLD,9),true);
        PdfTrueTypeFont listFont = new PdfTrueTypeFont(new Font("微软雅黑",Font.PLAIN,9),true);

//在指定位置绘制标题
        String title = "第 1 章 概 述";
        page.getCanvas().drawString(title, titleFont, blackBrush, x, y);
        y = y + (float) titleFont.measureString(title).getHeight();
        y = y + 5;

//创建两个编号列表符号
        PdfOrderedMarker marker1 = new PdfOrderedMarker(PdfNumberStyle.Upper_Roman, listFont);//罗马数字
        PdfOrderedMarker marker2 = new PdfOrderedMarker(PdfNumberStyle.Numeric, listFont);//阿拉伯数字

//创建一个父级列表
        String parentListContent = "第一节 故事线索\n"
                + "第二节 剧情发展";
        PdfSortedList parentList = new PdfSortedList(parentListContent);
        parentList.setFont(listFont);
        parentList.setIndent(8);
        parentList.setBrush(orangeBrush);
        parentList.setMarker(marker1);

//创建子列表subList_1
        String subListContent_1 = "历史背景\n"
                + "人物关系\n"
                + "故事矛盾";
        PdfSortedList subList_1 = new PdfSortedList(subListContent_1);
        subList_1.setIndent(16);
        subList_1.setFont(listFont);
        subList_1.setBrush(greenBrush);
        subList_1.setMarker(marker2);

//创建子列表subList_2
        String subListContent_2 = "案情分析\n"
                + "线索梳理\n"
                + "证物获取\n"
                + "证人供述";
        PdfSortedList subList_2 = new PdfSortedList(subListContent_2);
        subList_2.setIndent(16);
        subList_2.setFont(listFont);
        subList_2.setBrush(greenBrush);
        subList_2.setMarker(marker2);

//将subList_1设置为父列表第一个元素下的子列表
        PdfListItem item_1 = parentList.getItems().get(0);
        item_1.setSubList(subList_1);

//将subList_2设置为父列表第二个元素下的子列表
        PdfListItem item_2 = parentList.getItems().get(1);
        item_2.setSubList(subList_2);

//绘制父列表到页面指定位置
        PdfTextLayout textLayout = new PdfTextLayout();
        textLayout.setBreak(PdfLayoutBreakType.Fit_Page);
        textLayout.setLayout(PdfLayoutType.Paginate);
        parentList.draw(page,new Point2D.Float(x,y),textLayout);

//保存文档
        pdf.saveToFile("MultiLevelList.pdf");
        pdf.dispose();
    }
}

执行程序后,在生成的PDF文档中可查看多级列表添加效果:

原创内容,转载请务必注明出处!

(0)

相关推荐

  • Word 2007中更改多级编号列表级别

    在word2007文档中,用户可以通过更改编号列表级别创建多级编号列表,使Word编号列表的逻辑关系更加清晰,操作步骤如下所述: 步骤/方法 01 第1步,打开Word2007文档窗口,选中需要更改级 ...

  • 怎样在Word2007文档中更改多级编号列表级别

    在Word2007文档中,用户可以通过更改编号列表级别创建多级编号列表,使Word编号列表的逻辑关系更加清晰,操作步骤如下所述: 步骤/方法 01 第1步,打开Word2007文档窗口,选中需要更改级 ...

  • 怎样在Word2007中插入多级编号列表

    所谓多级列表是指Word文档中编号或项目符号列表的嵌套,以实现层次效果.在Word2007文档中可以插入多级列表,操作步骤如下所述: 步骤/方法 01 第1步,打开Word2007文档窗口,在&quo ...

  • 在Word2007中使用Tab键输入多级编号列表

    第1步,打开Word2007文档窗口,在"开始"功能区的"段落"分组中单击"编号"下拉三角按钮.并在打开的"编号"下拉列 ...

  • Word2007多级编号列表的使用技巧

    在Word2007中输入多级列表时有一个快捷的方法,就是使用Tab键辅助输入编号列表,操作步骤如下所述: 第1步,打开Word2007文档窗口,在"开始"功能区的"段落& ...

  • Word使用Tab键输入多级编号列表

    第1步,打开Word2007文档窗口,在"开始"功能区的"段落"分组中单击"编号"下拉三角按钮.并在打开的"编号"下拉列 ...

  • Java 删除PDF中的数字签名

    本文通过Java程序示例代码展示如何来删除PDF文档中已有的数字签名. 操作方法 01 导入jar文件到Java程序,如图: 注:如图所示为手动下载jar包然后解压导入程序的效果(可自行搜索下载):另 ...

  • Word多级符号列表是什么

    多级符号列表:用于为列表或文档设置层次结构而创建的列表。创建多级符号列表使列表具有复杂的结构。文档最多可有 9 个级别,Microsoft Word 不能对列表中的项目应用内置标题样式。 更改多级符号 ...

  • 【Word技巧:鲜为人知的多级符号列表设置】

    多级符号列表:用于为列表或文档设置层次结构而创建的列表.创建多级符号列表使列表具有复杂的结构.文档最多可有 9 个级别,Microsoft Word不能对列表中的项目应用内置标题样式. 更改多级符号列 ...