lemostic 2017-04-17 15:53 采纳率: 50%
浏览 4955
已采纳

Aspose.words处理word时,怎么删除空白页

在使用Aspose.words处理word文档时,最后一页处理完之后存在着几行没有用的文字,怎么能删除最后这一页呢?
图片说明
找了很多资料都没有说到这个,而且在api中也貌似没找到怎么删除指定的一页。请大家指教!

  • 写回答

1条回答

  • 白洞里的黑鱼 2020-09-09 11:45
    关注

    aspose.words是不能按照页数删除东西的,他的结构是以section为主的,但是section会跨页的,你如果按照页数操作会断section,所以是不行的,如果你要删除空白的页面,可以尝试对section循环,如果你能确定在最后一页就直接拿做后一个section,然后根据section.getBody().getText()是不是包含内容,如果没有你就可以直接删除了,如果是有的,可能就是那页空白页只能算一个paragraph,你就要在paragraph的级别去判断是不是空白页然后再删除。
    总的来说就是你不能想着对页面进行操作的,你能动的页面只有他的基本属性样式,不能对其中的内容进行控制,我自己做的项目也有删除空白的部分内容,我是删除了整个文档的空白页,空白行的可以看一下,有没有你要的;
    //得到去除空白页的部分
    public static void removeBlank(Document document) {
    for (Section section : document.getSections()) {
    //删除空白页部分
    if (StrUtil.isBlank(section.getBody().getText())){
    document.removeChild(section);
    }
    //得到所有段落
    for (Paragraph paragraph : section.getBody().getParagraphs()) {
    //flag代表该段落有没有图片
    boolean flag = false;
    if (paragraph.getChildNodes(NodeType.SHAPE,true).getCount()==0){
    flag = true;
    }
    //得到各个run
    RunCollection runs = paragraph.getRuns();
    if (flag){
    //首先去除各个部分的转义字符,如果删除之后run为空则去除
    for (Run run : runs) {
    run.setText(run.getText().replaceAll("[\f|\r|\n]",""));
    }
    //删除空白的paragraph,如果有图片则不删除,
    String content = StrUtil.cleanBlank(paragraph.getText());
    if (StrUtil.isBlank(content)){
    section.getBody().getParagraphs().remove(paragraph);
    }
    }
    }
    //去除空白的table
    for (Table table : section.getBody().getTables()) {
    for (Row row : table.getRows()) {
    for (Cell cell : row.getCells()) {
    if (StrUtil.isBlank(cell.getText())){
    row.getCells().remove(cell);
    }
    }
    if (StrUtil.isBlank(row.getText())){
    table.getRows().remove(row);
    }
    }
    if (StrUtil.isBlank(table.getText())){
    section.getBody().getTables().remove(table);
    }
    }
    }
    }
    图片说明

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?