如何创建 多级列表 每一个章节都是一个 Section sec
样式 例如
1
1.1
1.1.1
2
2.1
2.1.1
for(int i = 0;i<10;i++){
Section sec = doc.addSection();
addHeadingTitle("第"+i+""+"章",4,doc,sec);
}
public static ListStyle numberStyle(Document doc) {
//创建编号列表样式
ListStyle numberList = new ListStyle(doc, ListType.Numbered);//编号列表
numberList.setName("numberList");
numberList.getLevels().get(1).setNumberPrefix("\u0000.");
numberList.getLevels().get(1).setPatternType(ListPatternType.Arabic);
numberList.getLevels().get(2).setNumberPrefix("\u0000.\u0001.");
numberList.getLevels().get(2).setPatternType(ListPatternType.Arabic);
doc.getListStyles().add(numberList);
return numberList;
}
case 4://四级标题
Paragraph para4 = sec.addParagraph();
ListFormat listFormat = para4.getListFormat();
//应用编号列表样式
listFormat.applyNumberedStyle();
TextRange tr4 = para4.appendText(title1);
tr4.getCharacterFormat().setFontSize(16);
tr4.getCharacterFormat().setBold(true);
tr4.getCharacterFormat().setItalic(false);
tr4.getCharacterFormat().setFontName("黑体");
para4.applyStyle(BuiltinStyle.Heading_4);
para4.getListFormat().applyStyle(numberList.getName());
para4.getListFormat().setListLevelNumber(1);
//悬挂缩进 1.25cm
PdfUnitConvertor convertor4 = new PdfUnitConvertor();
float distance4 = convertor4.convertUnits(1.25f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Centimeter);
para4.getFormat().setFirstLineIndent(-distance4);
para4.getFormat().setLeftIndent(distance4);
//间距 段前 段后
para4.getFormat().setBeforeAutoSpacing(false);
para4.getFormat().setBeforeSpacing(10);
para4.getFormat().setAfterAutoSpacing(false);
para4.getFormat().setAfterSpacing(8);
//行距 单倍行距 1倍
para4.getFormat().setLineSpacing(12f);
//对齐方式 两端对齐
para4.getFormat().setHorizontalAlignment(HorizontalAlignment.Justify);
break;
ListStyle numberList = new ListStyle(doc, ListType.Numbered);//编号列表
numberList.setName("numberList");
numberList.getLevels().get(1).setNumberPrefix("\u0000.");
numberList.getLevels().get(1).setPatternType(ListPatternType.Arabic);
numberList.getLevels().get(2).setNumberPrefix("\u0000.\u0001.");
numberList.getLevels().get(2).setPatternType(ListPatternType.Arabic);
doc.getListStyles().add(numberList);
Paragraph para4 = sec.addParagraph();
//编号
para4.getListFormat().applyStyle(numberList.getName());
para4.getListFormat().setListLevelNumber(1);
para4.applyStyle(BuiltinStyle.Heading_4);
//设置标题的字体样式
TextRange tr4 = para4.appendText(title1);
tr4.getCharacterFormat().setFontSize(16);
tr4.getCharacterFormat().setBold(true);
tr4.getCharacterFormat().setItalic(false);
tr4.getCharacterFormat().setFontName("黑体");
Document doc = new Document();
//create list style
ListStyle numberList = new ListStyle(doc, ListType.Numbered);
numberList.setName("numberList");
numberList.getLevels().get(1).setNumberPrefix("\u0000.");
numberList.getLevels().get(1).setPatternType(ListPatternType.Arabic);
//设置1级标题的字体为黑体
numberList.getLevels().get(1).getCharacterFormat().setFontName("黑体");
//add the list style into document
doc.getListStyles().add(numberList);
Section sec = doc.addSection();
Paragraph para4 = sec.addParagraph();
//编号
para4.getListFormat().applyStyle(numberList.getName());
para4.getListFormat().setListLevelNumber(1);
para4.applyStyle(BuiltinStyle.Heading_4);
//设置标题的字体样式
TextRange tr4 = para4.appendText("title1");
tr4.getCharacterFormat().setFontSize(16);
tr4.getCharacterFormat().setBold(true);
tr4.getCharacterFormat().setItalic(false);
tr4.getCharacterFormat().setFontName("黑体");
Paragraph para3 = sec.addParagraph();
para3.getListFormat().applyStyle(numberList.getName());
para3.applyStyle(BuiltinStyle.Heading_3);
TextRange tr3 = para3.appendText(title1);
tr3.getCharacterFormat().setFontSize(18);
tr3.getCharacterFormat().setBold(true);
tr3.getCharacterFormat().setItalic(false);
tr3.getCharacterFormat().setFontName("黑体");
Document doc = new Document();
Section sec = doc.addSection();
Paragraph para = sec.addParagraph();
para.applyStyle(BuiltinStyle.Heading_1);
//设置标题的字体样式
TextRange textRange = para.appendText("第X部分");
textRange.getCharacterFormat().setFontSize(16);
textRange.getCharacterFormat().setBold(true);
textRange.getCharacterFormat().setItalic(false);
textRange.getCharacterFormat().setFontName("黑体");
numberList.getLevels().get(1).setNumberPrefix("\u0000.");
numberList.getLevels().get(1).setPatternType(ListPatternType.Arabic);
numberList.getLevels().get(1).getCharacterFormat().setFontName("黑体");
numberList.getLevels().get(1).getCharacterFormat().setBold(true);
numberList.getLevels().get(1).getCharacterFormat().setItalic(false);
numberList.getLevels().get(1).getCharacterFormat().setFontSize(16);
para4.getListFormat().applyStyle(numberList.getName());
para4.getListFormat().setListLevelNumber(1);
para4.applyStyle(BuiltinStyle.Heading_4);
para3.getListFormat().applyStyle(numberList.getName());
para3.applyStyle(BuiltinStyle.Heading_3);
//设置多级列表最上级编号(1.)的字体为宋体
numberList.getLevels().get(0).getCharacterFormat().setFontName("宋体");
Document doc = new Document();
Section sec = doc.addSection();
//create list style
ListStyle numberList = new ListStyle(doc, ListType.Numbered);
numberList.setName("numberList");
//设置多级列表最上级编号(1.)的字体为宋体
numberList.getLevels().get(0).getCharacterFormat().setFontName("宋体");
numberList.getLevels().get(1).setNumberPrefix("\u0000.");
numberList.getLevels().get(1).setPatternType(ListPatternType.Arabic);
//设置多级列表编号(1.1)的字体为宋体
numberList.getLevels().get(1).getCharacterFormat().setFontName("宋体");
//add the list style into document
doc.getListStyles().add(numberList);
Paragraph paragraph = sec.addParagraph();
paragraph.appendText("List Item 1");
paragraph.getListFormat().applyStyle(numberList.getName());
paragraph.applyStyle(BuiltinStyle.Heading_3);
paragraph = sec.addParagraph();
paragraph.appendText("List Item 1.1");
paragraph.getListFormat().applyStyle(numberList.getName());
paragraph.getListFormat().setListLevelNumber(1);
paragraph.applyStyle(BuiltinStyle.Heading_4);
doc.saveToFile("output/result_test.docx", FileFormat.Docx);