关于删除文档中的空白页的问题

help.zip (11.9 KB)
如压缩附件所示,test.doc是测试文档,我期望删掉测试文档中的空白页
如压缩附件所示,expect.doc是期望文档

@liyong199466

在您的情况下,我们建议您遵循解决方案。

  • 获取文档的段落节点。
  • 获取文档页面的节点,检查节点文本是否为空或仅包含分页符。
  • 您可以使用LayoutCollector.GetStartPageIndex方法检查页面的节点。
  • 如果页面节点没有文本且节点不是Shape或GroupShape类型,请删除这些节点。

希望这对你有所帮助。

你好,针对该问题,能不能附上详细的代码

@liyong199466

在您的文档中,分页符位于开始部分,文档末尾有一个空白页面。 您可以使用以下代码示例来获取所需的输出。

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");