本文介绍如何使用Spire.Doc for Java在含多个节的Word文档中添加连续和非连续的页码。
添加连续的页码到文档
默认地,当我们添加页码到第一节的页眉或页脚后,其他节会链接到前一节以使用相同的页眉或页脚。因此,我们只需要在第一节中设置页码。
import com.spire.doc.Document;
import com.spire.doc.FieldType;
import com.spire.doc.FileFormat;
import com.spire.doc.HeaderFooter;
import com.spire.doc.documents.HorizontalAlignment;
import com.spire.doc.documents.Paragraph;
public class ContinuousPaging {
public static void main(String[] args) {
//加载Word文档
Document document = new Document("C:\\Users\\Administrator\\Desktop\\test.docx");
//获取第一个节中的页脚
HeaderFooter footer = document.getSections().get(0).getHeadersFooters().getFooter();
//添加段落到页脚
Paragraph footerParagraph = footer.addParagraph();
//添加文字、页码域和总页数域到段落
footerParagraph.appendText("第");
footerParagraph.appendField("page number", FieldType.Field_Page);
footerParagraph.appendText("页 共");
footerParagraph.appendField("number of pages", FieldType.Field_Num_Pages);
footerParagraph.appendText("页");
//将段落居中
footerParagraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
//保存文档
document.saveToFile("ContinuousNumbering.docx", FileFormat.Docx_2013);
}
}
为不同的节添加不连续的页码
import com.spire.doc.Document;
import com.spire.doc.FieldType;
import com.spire.doc.FileFormat;
import com.spire.doc.HeaderFooter;
import com.spire.doc.documents.HorizontalAlignment;
import com.spire.doc.documents.Paragraph;
public class DiscontinuousPaging {
public static void main(String[] args) {
//加载Word文档
Document document = new Document("C:\\Users\\Administrator\\Desktop\\test.docx");
//获取第一节的页脚
HeaderFooter footer = document.getSections().get(0).getHeadersFooters().getFooter();
//添加段落到页脚
Paragraph footerParagraph = footer.addParagraph();
//添加文本、节域、页码域到段落
footerParagraph.appendText("第");
footerParagraph.appendField("section number", FieldType.Field_Section);
footerParagraph.appendText("节 第");
footerParagraph.appendField("page number", FieldType.Field_Page);
footerParagraph.appendText("页");
//将段落居中
footerParagraph.getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
//判断文档是否含多个节
if (document.getSections().getCount()>1) {
//遍历除第一节以外的其他节
for (int i = 1; i < document.getSections().getCount(); i++) {
//在当前节重新开始编页码
document.getSections().get(i).getPageSetup().setRestartPageNumbering(true);
//从1开始编页码
document.getSections().get(i).getPageSetup().setPageStartingNumber(1);
}
}
//保存文档
document.saveToFile("DiscontinuousNumbering.docx", FileFormat.Docx_2013);
}
}