列表是一种很好的组织信息的方式,与大段的文字西相比,列表能够更清楚明了地展示出重要信息。PDF 中有两种不同列表:有序列表和无序列表,这两种列表还可以同时应用在嵌套列表中。本文将介绍如何使用 Spire.PDF for Java 提供的类和方法在 PDF 文档中创建各种形式的列表。
在 Spire.PDF for Java 中,PdfSortedList 类和 PdfUnorderedList 类分别代表有序列表和无序列表,其中包含设置列表的内容、缩进、字体、样式以及其他属性的方法。下表列出了创建列表所需的一些核心类和方法。
| 类或方法 | 说明 | 
| PdfSortedList 类 | 代表PDF文档中的有序列表。 | 
| PdfUnorderedList 类 | 代表PDF文档中的无序列表。 | 
| PdfListBase.setBrush() 方法 | 设置列表画笔。 | 
| PdfListBase.setFont() 方法 | 设置列表字体。 | 
| PdfListBase.sertIndent() 方法 | 设置列表缩进。 | 
| PdfListBase.setTextIndent() 方法 | 设置项目标记和项目之间的缩进。 | 
| PdfListBase.getItems() 方法 | 获取列表的项目。 | 
| PdfListBase.setMarker() 方法 | 设置列表的项目标记。 | 
| PdfListBase.draw() 方法 | 将列表绘制在页面的指定位置 | 
| PdfOrderedMarker 类 | 代表有序列表的项目标记,如数字、字母、罗马数字。 | 
| PdfMarker 类 | 代表无序列表的项目符号样式。 | 
安装 Spire.PDF for Java
首先,您需要在 Java 程序中添加 Spire.Pdf.jar 文件作为依赖项。JAR 文件可以从此链接下载。如果您使用 Maven,则可以将以下代码添加到项目的 pom.xml 文件中,从而在应用程序中导入 JAR 文件。
<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf</artifactId>
        <version>11.10.3</version>
    </dependency>
</dependencies>
在 PDF 文档中创建有序列表
有序列表按一定顺序排列一系列项目,每个项目前都有一个数字、字母或罗马数字作为项目标记。以下是使用 Spire.PDF for Java 在 PDF 文档中创建有序列表的详细操作步骤:
- 创建一个 PdfDocument 类的对象。
- 用 PdfDocument.getPages().add() 方法添加一个页面。
- 创建 PdfBrush 和 PdfFont 类的对象。
- 创建一个 PdfOrderedMarker 类的对象,并将标记样式指定为 Lower_Latin。
- 用字符串指定列表的内容,并根据字符串创建一个 PdfSortedList 类的对象。
- 用 PdfSortedList 对象下的方法设置列表的字体、缩进、画笔和标记。
- 用 PdfSortedList.draw() 方法在页面上的指定位置绘制列表。
- 用 PdfDocument.saveToFile() 方法保存文档。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfNumberStyle;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageSize;
import com.spire.pdf.graphics.*;
import com.spire.pdf.lists.PdfOrderedMarker;
import com.spire.pdf.lists.PdfSortedList;
import java.awt.*;
public class createOrderedList {
    public static void main(String[] args) {
        //创建PdfDocument类的对象
        PdfDocument doc = new PdfDocument();
        //设置页边距
        PdfMargins margins = new PdfMargins(30);
        //添加一个页面
        PdfPageBase page = doc.getPages().add(PdfPageSize.A4, margins);
        //创建画笔
        PdfBrush brush = PdfBrushes.getBlack();
        //创建字体
        PdfTrueTypeFont titleFont = new PdfTrueTypeFont(new Font("黑体", Font.BOLD,14));
        PdfTrueTypeFont listFont = new PdfTrueTypeFont(new Font("黑体", Font.BOLD,12));
        //创建有序列表的项目标记
        PdfOrderedMarker marker = new PdfOrderedMarker(PdfNumberStyle.Lower_Latin, listFont);
        //指定初始坐标
        float x = 10;
        float y = 20;
        //绘制标题
        String title = "Web开发必备技能";
        page.getCanvas().drawString(title, titleFont, brush, x, y);
        y = y + (float) titleFont.measureString(title).getHeight();
        y = y + 5;
        //创建有序列表
        String listContent = "命令行Unix\n"
                + "Vim\n"
                + "HTML\n"
                + "CSS\n"
                + "Python\n"
                + "JavaScript\n"
                + "SQL";
        PdfSortedList list = new PdfSortedList(listContent);
        //设置列表的字体、列表缩进、文本缩进、画笔及项目标记
        list.setFont(listFont);
        list.setIndent(2);
        list.setTextIndent(4);
        list.setBrush(brush);
        list.setMarker(marker);
        //将列表绘制在页面上的指定位置
        list.draw(page, x, y);
        //保存文档
        doc.saveToFile("有序列表.pdf");
    }
}
在 PDF 文档中创建项目符号列表
无序列表也叫项目符号列表,包含没有特别顺序的相关项目,列表的每个项目前都有一个项目符号。以下是使用 Spire.PDF for Java 在 PDF 文档中创建无序列表的详细操作步骤:
- 创建一个 PdfDocument 类的对象。
- 用 PdfDocument.getPages().add() 方法添加一个页面。
- 创建 PdfBrush 和 PdfFont 类的对象。
- 创建一个 PdfMarker 类的对象,并指定项目标记的样式。
- 用字符串指定列表的内容,并根据字符串创建一个 PdfUnorderedList 类的对象。
- 用 PdfUnorderedList 对象下的方法设置列表的字体、缩进、画笔和项目标记。
- 用 PdfUnorderedList.draw() 方法在页面上的指定位置绘制列表。
- 用 PdfDocument.saveToFile() 方法保存文档。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageSize;
import com.spire.pdf.graphics.*;
import com.spire.pdf.lists.PdfMarker;
import com.spire.pdf.lists.PdfUnorderedList;
import com.spire.pdf.lists.PdfUnorderedMarkerStyle;
import java.awt.*;
public class createUnorderedList {
    public static void main(String[] args) {
        //创建PdfDocument类的对象
        PdfDocument doc = new PdfDocument();
        //设置页边距
        PdfMargins margin = new PdfMargins(30);
        //添加一个页面
        PdfPageBase page = doc.getPages().add(PdfPageSize.A4, margin);
        //创建字体
        PdfTrueTypeFont titleFont = new PdfTrueTypeFont(new Font("黑体", Font.BOLD,14));
        PdfTrueTypeFont listFont = new PdfTrueTypeFont(new Font("黑体", Font.PLAIN,12));
        PdfTrueTypeFont markerFont = new PdfTrueTypeFont(new Font("黑体", Font.PLAIN,8));
        //创建画笔
        PdfBrush brush = PdfBrushes.getBlack();
        //指定初始坐标
        float x = 10;
        float y = 20;
        //绘制标题
        String title = "计算机科学科目";
        page.getCanvas().drawString(title, titleFont, brush, x, y);
        y = y + (float)titleFont.measureString(title).getHeight();
        y = y + 5;
        //设置项目标记样式
        PdfMarker marker = new PdfMarker(PdfUnorderedMarkerStyle.Asterisk);
        marker.setFont(markerFont);
        //创建无序列表
        String listContent = "数据结构\n"
                + "算法\n"
                + "计算机科学\n"
                + "操作系统\n"
                + "计算理论\n"
                + "C语言编程\n"
                +"计算机组织和结构";
        PdfUnorderedList list = new PdfUnorderedList(listContent);
        //设置列表字体、列表缩进、文本缩进、画笔和项目标记
        list.setFont(listFont);
        list.setIndent(2);
        list.setTextIndent(4);
        list.setBrush(brush);
        list.setMarker(marker);
        //将列表绘制在页面的指定位置
        list.draw(page, x, y);
        //保存文档
        doc.saveToFile("项目符号列表.pdf");
    }
}
在 PDF 文档中创建图片项目符号列表
除了普通符号之外,还可以用图片作为无序列表的项目符号。创建图片项目符号无序列表的操作步骤如下:
- 创建一个 PdfDocument 类的对象。
- 用 PdfDocument.getPages().add() 方法添加一个页面。
- 创建 PdfBrush 和 PdfFont 类的对象。
- 创建一个 PdfMarker 类的对象,设置标记样式为 Custom_Image。
- 用 PdfMarker.setImage() 方法将图像设置为项目符号。
- 用字符串指定列表的内容,并根据字符串创建一个 PdfUnorderedList 类的对象。
- 用 PdfUnorderedList 对象下的方法设置列表的字体、缩进、画笔和项目标记。
- 用 PdfUnorderedList.draw() 方法在页面上的指定位置绘制列表。
- 用 PdfDocument.saveToFile() 方法保存文档。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageSize;
import com.spire.pdf.graphics.*;
import com.spire.pdf.lists.PdfMarker;
import com.spire.pdf.lists.PdfUnorderedList;
import com.spire.pdf.lists.PdfUnorderedMarkerStyle;
import java.awt.*;
public class customizeBulletPointsWithImage {
    public static void main(String[] args) {
        //创建PdfDocument类的对象
        PdfDocument doc = new PdfDocument();
        //设置页边距
        PdfMargins margin = new PdfMargins(30);
        //添加一个页面
        PdfPageBase page = doc.getPages().add(PdfPageSize.A4, margin);
        //创建字体
        PdfTrueTypeFont titleFont = new PdfTrueTypeFont(new Font("黑体", Font.BOLD, 14));
        PdfTrueTypeFont listFont = new PdfTrueTypeFont(new Font("黑体", Font.PLAIN, 12));
        //创建画笔
        PdfBrush brush = PdfBrushes.getBlack();
        //指定初始坐标
        float x = 10;
        float y = 20;
        //绘制标题
        String title = "项目待办事项";
        page.getCanvas().drawString(title, titleFont, brush, x, y);
        y = y + (float)titleFont.measureString(title).getHeight();
        y = y + 5;
        //将项目标记样式指定为图片
        PdfMarker marker = new PdfMarker(PdfUnorderedMarkerStyle.Custom_Image);
        //将图片设置为项目标记
        marker.setImage(PdfImage.fromFile("核查标志.png"));
        //順序なしリストを作成する
        String listContent = "确定你正在进行的项目或任务。\n"
                + "分配任务。\n"
                + "确定任务的优先次序。\n"
                + "跟踪任务的进展状况。\n"
                + "任务完成后,将其标记为已完成。";
        PdfUnorderedList list = new PdfUnorderedList(listContent);
        //设置列表字体、列表缩进、文本缩进、画笔和项目标记
        list.setFont(listFont);
        list.setIndent(2);
        list.setTextIndent(4);
        list.setBrush(brush);
        list.setMarker(marker);
        //将列表绘制在页面上的指定位置
        list.draw(page, x, y);
        //保存文档
        doc.saveToFile("图片项目符号列表.pdf");
    }
}
在 PDF 文档中创建嵌套列表
嵌套列表是包含至少1个子列表的多级列表,用于显示数据的层次结构。以下是使用 Spire.PDF for Java 在 PDF 文档中创建嵌套列表的操作步骤:
- 创建一个 PdfDocument 类的对象。
- 用 PdfDocument.getPages().add() 方法添加一个页面。
- 创建一个 PdfOrderedMarker 类的对象,指定标记样式为 Numeric。
- 用字符串指定列表内容,并根据该字符串创建一个主列表。然后使用 PdfSortedList 对象下的方法设置列表的字体、缩进、画笔和项目标记。
- 重复上述步骤,创建子列表和二级子列表。
- 用 PdfSortedList.getItems().get() 方法获取主列表的指定项目,并使用 PdfListItem.setSublist() 方法向其添加子列表。
- 用 PdfSortedList.draw() 方法在页面上的指定位置绘制列表。
- 用 PdfDocument.saveToFile() 方法保存文档。
- Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfNumberStyle;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageSize;
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.*;
public class createMultiLevelList {
    public static void main(String[] args) {
        //创建PdfDocument类的对象
        PdfDocument doc = new PdfDocument();
        //设置页边距
        PdfMargins margin = new PdfMargins(30);
        //添加一个页面
        PdfPageBase page = doc.getPages().add(PdfPageSize.A4, margin);
        //指定初始坐标
        float x = 10;
        float y = 20;
        //创建画笔
        PdfBrush blackBrush = PdfBrushes.getBlack();
        PdfBrush purpleBrush = PdfBrushes.getPurple();
        //创建字体
        PdfTrueTypeFont titleFont = new PdfTrueTypeFont(new Font("黑体", Font.BOLD, 14));
        PdfTrueTypeFont listFont = new PdfTrueTypeFont(new Font("黑体", Font.PLAIN, 12));
        //创建有序列表的项目标记
        PdfOrderedMarker marker = new PdfOrderedMarker(PdfNumberStyle.Numeric, listFont);
        //绘制标题
        String title = "以下是一个嵌套列表。";
        page.getCanvas().drawString(title, titleFont, blackBrush, x, y);
        y = y + (float)titleFont.measureString(title).getHeight();
        y = y + 5;
        //创建主列表
        String parentListContent = "项目 1\n"
                + "项目 2";
        PdfSortedList parentList = new PdfSortedList(parentListContent);
        parentList.setFont(listFont);
        parentList.setIndent(2);
        parentList.setBrush(purpleBrush);
        parentList.setMarker(marker);
        //创建一个名为“subList_1”的子列表
        String subListContent_1 = "子项目 1\n"
                + "子项目 2\n"
                + "子项目 3\n"
                + "子项目 4";
        PdfSortedList subList_1 = new PdfSortedList(subListContent_1);
        subList_1.setIndent(12);
        subList_1.setFont(listFont);
        subList_1.setBrush(blackBrush);
        subList_1.setMarker(marker);
        subList_1.setMarkerHierarchy(true);
        //创建一个名为“subList_2”的子列表
        String subListContent_2 = "子项目 1\n"
                + "子项目 2\n"
                + "子项目 3";
        PdfSortedList subList_2 = new PdfSortedList(subListContent_2);
        subList_2.setIndent(12);
        subList_2.setFont(listFont);
        subList_2.setBrush(blackBrush);
        subList_2.setMarker(marker);
        subList_2.setMarkerHierarchy(true);
        //创建一个名为“subList_2”的二级子列表
        String subSubListContent_1 = "二级子项目 1\n"
                + "二级子项目 2";
        PdfSortedList subSubList = new PdfSortedList(subSubListContent_1);
        subSubList.setIndent(20);
        subSubList.setFont(listFont);
        subSubList.setBrush(blackBrush);
        subSubList.setMarker(marker);
        subSubList.setMarkerHierarchy(true);
        //设置“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);
        //设置“subSubList”为“subList_1”中第一个项目的子列表
        PdfListItem item_1_1 = subList_1.getItems().get(0);
        item_1_1.setSubList(subSubList);
        //绘制主列表
        parentList.draw(page, x, y);
        //保存文档
        doc.saveToFile("多级列表.pdf");
    }
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
 



 
					



