使用列表
Microsoft Word文档中的列表是一组列表格式属性。 列表可以在文档中用于格式化、排列和强调文本。 列表是在文档中组织数据的好方法,它们使读者更容易理解关键点。
每个列表最多可以有9个级别和格式属性,如数字样式,开始值,缩进,制表位,以及其他为每个级别单独定义。
本文介绍使用Aspose.Words以编程方式处理列表。
通过应用列表格式创建列表
Aspose.Words允许通过应用列表格式轻松创建列表。 DocumentBuilder提供返回ListFormat对象的ListFormat属性。 此对象有几种方法来开始和结束列表以及增加/减少缩进。 Microsoft Word中有两种一般类型的列表:项目符号和编号:
- 要启动项目符号列表,请调用ListFormat.ApplyBulletDefault
- 要开始编号列表,请调用ListFormat.ApplyNumberDefault
项目符号或数字和格式将添加到当前段落以及使用DocumentBuilder创建的所有其他段落,直到调用RemoveNumbers停止项目符号列表格式。
在Word文档中,列表最多可包含九个级别。 每个级别的列表格式指定使用的项目符号或数字,左缩进,项目符号和文本之间的空格等。 以下方法更改列表级别并应用新级别的格式设置属性:
- 若要将当前段落的列表级别增加一个级别,请调用ListFormat.ListIndent
- 若要将当前段落的列表级别降低一个级别,请调用ListFormat.ListOutdent
这些方法更改列表级别并应用新级别的格式属性。
下面的代码示例演示如何构建多级列表:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
// The path to the documents directory. | |
String dataDir = Utils.getDataDir(DocumentBuilderSetMultilevelListFormatting.class); | |
// Open the document. | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.getListFormat().applyNumberDefault(); | |
builder.writeln("Item 1"); | |
builder.writeln("Item 2"); | |
builder.getListFormat().listIndent(); | |
builder.writeln("Item 2.1"); | |
builder.writeln("Item 2.2"); | |
builder.getListFormat().listIndent(); | |
builder.writeln("Item 2.1.1"); | |
builder.writeln("Item 2.2.2"); | |
builder.getListFormat().listOutdent(); | |
builder.writeln("Item 3"); | |
builder.getListFormat().removeNumbers(); | |
doc.save(dataDir + "output.doc"); |
指定列表级别的格式
创建列表时会自动创建列表级对象。 使用ListLevel类的属性和方法来控制列表各个级别的格式设置。
每个部分的重新启动列表
您可以使用IsRestartAtEachSection属性重新启动每个部分的列表。 请注意,此选项仅在RTF、DOC和DOCX文档格式中受支持。 只有当OoxmlCompliance高于Ecma376时,此选项才会写入DOCX。
下面的代码示例演示如何为每个部分创建一个列表并重新启动它:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(); | |
doc.getLists().add(ListTemplate.NUMBER_DEFAULT); | |
com.aspose.words.List list = doc.getLists().get(0); | |
// Set true to specify that the list has to be restarted at each section. | |
list.isRestartAtEachSection(true); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.getListFormat().setList(list); | |
for (int i = 1; i < 45; i++) { | |
builder.writeln(String.format("List Item " + i)); | |
// Insert section break. | |
if (i == 15) | |
builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE); | |
} | |
builder.getListFormat().removeNumbers(); | |
// IsRestartAtEachSection will be written only if compliance is higher then OoxmlComplianceCore.Ecma376 | |
OoxmlSaveOptions options = new OoxmlSaveOptions(); | |
options.setCompliance(OoxmlCompliance.ISO_29500_2008_TRANSITIONAL); | |
dataDir = dataDir + "RestartAtEachSection_out.docx"; | |
// Save the document to disk. | |
doc.save(dataDir, options); |