关于org.apache.poi处理word文档遇到的一些坑
使用NiceXPWFDocument.merge(NiceXPWFDocument doc) 方法遇到的页码未按source文件格式递增的问题
其实这是因为源文件和合并文件中都定义有页脚信息, 或者是合并文件在正文内容中镶嵌中一些不合理的页眉页脚设置,所以需要我们在合并文件之前先处理掉合并文件中的页眉页脚信息
示例代码
try {
NiceXWPFDocument content = new NiceXWPFDocument(dto.getContent().getInputStream());
//清除附件中的页码信息
//只通过document.getDocument().getBody().getSectPr()是无法取到中间的一些奇怪的页码信息的
for (CTP ctp : content.getDocument().getBody().getPList()) {
CTPPr pPr = ctp.getPPr();
if (pPr == null || pPr.getSectPr() == null){
continue;
}
if (pPr.getSectPr().getHeaderReferenceList() != null || pPr.getSectPr().getFooterReferenceList() != null){
pPr.unsetSectPr();
}
}
document = document.merge(content);
} catch (Exception e) {
e.printStackTrace();
}