当前通过DocumentBuilder.insertField(“NUMPAGES”,“”)实现了总页码,但是想实现总页码减1,按照office的word的域代码规则,应该是{= {NUMPAGES} -1},但是在java.words中,DocumentBuilder.insertField(“= {NUMPAGES} -1”,“”)中的花括号会被识别为文本,是否有其他api能够自定义较为复杂的域代码,来实现总页码减1,谢谢
com.aspose:aspose-words:javadoc:23.9
@wsy123 下面是几个您可以使用的例子:
Document doc = new Document();
DocumentBuilder docBuilder = new DocumentBuilder(doc);
Field formulaFieldNumpages = docBuilder.insertField(FieldType.FIELD_FORMULA, false);
// 将 DocumentBuilder 移至公式字段代码内。
docBuilder.moveTo(formulaFieldNumpages.getSeparator());
// 插入 NUMPAGES 字段。
docBuilder.insertField(FieldType.FIELD_NUM_PAGES, false);
// 继续编写公式。
docBuilder.write("-1");
doc.updateFields();
doc.save("output.docx");
Document doc = new Document();
DocumentBuilder docBuilder = new DocumentBuilder(doc);
Field formulaFieldPage = docBuilder.insertField(FieldType.FIELD_FORMULA, false);
// 显示 PAGE(页码)和 NUMPAGES(页数)之间的分隔符。
docBuilder.write(" / ");
Field formulaFieldNumpages = docBuilder.insertField(FieldType.FIELD_FORMULA, false);
// 将 DocumentBuilder 移至公式字段代码内。
docBuilder.moveTo(formulaFieldPage.getSeparator());
// 插入 PAGE 字段。
docBuilder.insertField(FieldType.FIELD_PAGE, false);
// 继续编写公式。
docBuilder.write("+1");
// 将 DocumentBuilder 移至公式字段代码内。
docBuilder.moveTo(formulaFieldNumpages.getSeparator());
// 插入 NUMPAGES 字段。
docBuilder.insertField(FieldType.FIELD_NUM_PAGES, false);
// 继续编写公式。
docBuilder.write("-1");
doc.updateFields();
doc.save("output.docx");
谢谢,通过你提供的方法已经解决