spire.doc for java支持生成默认样式的目录,也支持生成自定义目录(即可以自定义目录的样式,如是否显示页码,页码是否右对齐等)。本文将介绍如何使用spire.doc for java在word文档中生成默认样式的目录和自定义样式的目录。
以下示例展示了如何生成一个包含heading 1、heading 2、heading 3,制表符前导符和右对齐页码的目录。
import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.*;
import java.awt.*;
public class tableofcontents {
public static void main(string[] args){
//创建word文档
document doc = new document();
//添加一个section
section section = doc.addsection();
//添加段落
paragraph para = section.addparagraph();
textrange tr = para.appendtext("table of contents");
//设置字体大小和颜色
tr.getcharacterformat().setfontsize(11);
tr.getcharacterformat().settextcolor(color.blue);
//设置段后间距
para.getformat().setafterspacing(10);
//添加段落
para = section.addparagraph();
//通过指定最低的heading级别1和最高的heading级别3,创建包含heading 1、2、3,制表符前导符和右对齐页码的默认样式的word目录。标题级别范围必须介于1到9之间
para.appendtoc(1, 3);
//添加一个section
section = doc.addsection();
//添加一个段落
para = section.addparagraph();
para.appendtext("heading 1");
//应用heading 1样式到段落
para.applystyle(builtinstyle.heading_1);
section.addparagraph();
//添加一个段落
para = section.addparagraph();
para.appendtext("heading 2");
//应用heading 2样式到段落
para.applystyle(builtinstyle.heading_2);
section.addparagraph();
//添加一个段落
para = section.addparagraph();
para.appendtext("heading 3");
//应用heading 3样式到段落
para.applystyle(builtinstyle.heading_3);
section.addparagraph();
//更新目录
doc.updatetableofcontents();
//保存结果文档
doc.savetofile("createtableofcontents.docx", fileformat.docx);
}
}
生成结果:
我们也可以通过使用toc域的开关来生成自定义样式的目录。以下示例展示了如何使用toc域开关生成一个包含heading 1、2、3但省略了页码的目录。
import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.*;
import java.awt.*;
public class tableofcontents {
public static void main(string[] args){
//创建word文档
document doc = new document();
//添加一个section
section section = doc.addsection();
//添加段落
paragraph para = section.addparagraph();
textrange tr = para.appendtext("table of contents");
//设置字体大小和颜色
tr.getcharacterformat().setfontsize(11);
tr.getcharacterformat().settextcolor(color.blue);
//设置段后间距
para.getformat().setafterspacing(10);
//使用toc域开关,创建一个包含heading 1、2、3但省略了页码的自定义目录
tableofcontent toc = new tableofcontent(doc, "{\\o \"1-3\" \\n 1-3}");
para = section.addparagraph();
para.getitems().add(toc);
para.appendfieldmark(fieldmarktype.field_separator);
para.appendtext("toc");
para.appendfieldmark(fieldmarktype.field_end);
doc.settoc(toc);
//添加一个section
section = doc.addsection();
//添加段落
para = section.addparagraph();
para.appendtext("heading 1");
//应用heading 1样式到段落
para.applystyle(builtinstyle.heading_1);
section.addparagraph();
//添加段落
para = section.addparagraph();
para.appendtext("heading 2");
//应用heading 2样式到段落
para.applystyle(builtinstyle.heading_2);
section.addparagraph();
//添加段落
para = section.addparagraph();
para.appendtext("heading 3");
//应用heading 3样式到段落
para.applystyle(builtinstyle.heading_3);
section.addparagraph();
//更新目录
doc.updatetableofcontents();
//保存结果文档
doc.savetofile("customtableofcontents.docx", fileformat.docx);
}
}
生成结果: