最近用poi生成word,但是目录页码始终弄了很久没有找到。然后发现aspose可以。
可以查询指定文字或者书签所在的页码,并替换。
Document doc = new Document(文件的路径);
LayoutCollector layoutCollector = new LayoutCollector(doc);
//需要替换的目录书签
List<String> bookmarkList = new ArrayList<>();
bookmarkList.add("检测结果汇总页码");
bookmarkList.add("附录二页码");
bookmarkList.add("保全证书的说明页码");
//全部书签
BookmarkCollection bms = doc.getRange().getBookmarks();
for (String bookmark : bookmarkList) {
//获取到所在页码
Bookmark bm = bms.get(bookmark.substring(0,bookmark.length()-2));
int pageNumber = layoutCollector.getEndPageIndex(bm.getBookmarkStart()) - 1;
//进行替换
bms.get(bookmark).setText(String.valueOf(pageNumber));
}
//最后保存
doc.save(文件的路径);
然后这是总页数的代码
int pageCount = doc.getPageCount();