help.zip (11.9 KB)
如压缩附件所示,test.doc是测试文档,我期望删掉测试文档中的空白页
如压缩附件所示,expect.doc是期望文档
在您的情况下,我们建议您遵循解决方案。
- 获取文档的段落节点。
- 获取文档页面的节点,检查节点文本是否为空或仅包含分页符。
- 您可以使用LayoutCollector.GetStartPageIndex方法检查页面的节点。
- 如果页面节点没有文本且节点不是Shape或GroupShape类型,请删除这些节点。
希望这对你有所帮助。
你好,针对该问题,能不能附上详细的代码
在您的文档中,分页符位于开始部分,文档末尾有一个空白页面。 您可以使用以下代码示例来获取所需的输出。
Document doc = new Document(MyDir + "test.doc");
doc.updatePageLayout();
for(Section section : doc.getSections())
{
if(section.getBody().getFirstParagraph().getText().contains(ControlChar.PAGE_BREAK))
section.getBody().getFirstParagraph().remove();
}
while (true)
{
if(!doc.getLastSection().getBody().getLastParagraph().hasChildNodes()
&& doc.getLastSection().getBody().getLastParagraph().toString(SaveFormat.TEXT).trim().length() == 0)
doc.getLastSection().getBody().getLastParagraph().remove();
if(doc.getLastSection().getBody().getLastParagraph().getText().contains(ControlChar.PAGE_BREAK)
&& doc.getLastSection().getBody().getLastParagraph().toString(SaveFormat.TEXT).trim().length() == 0)
doc.getLastSection().getBody().getLastParagraph().remove();
if(doc.getLastSection().getBody().getLastParagraph().hasChildNodes())
break;
}
doc.save(MyDir + "Out.docx");