列表是一种很好的组织信息的方式,与大段的文字西相比,列表能够更清楚明了地展示出重要信息。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 文件。
com.e-iceblue
e-iceblue
https://repo.e-iceblue.cn/repository/maven-public/
e-iceblue
spire.pdf
9.5.6
在 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 天的临时许可证。