Java 批量删除Word中的空白段落
1. 测试文档、期望达到的目标文档效果
用于测试的Word文档如下所示,包含的空白段落影响文章整体布局及美观性:

目标文档效果:

2. 辅助工具
2.1 使用类库:Free Spire.Doc for Java(免费版)
2.2 类库jar导入(2种导入方法供参考):
①. 通过官网下载jar包,解压,手动将lib文件夹下的Spire.Doc.jar导入java程序;
②. Maven程序中导入jar需先配置pom.xml文件,然后导入程序,如下配置:
<repositories>
<repository>
<id>com.e-iceblue</id>
<url>http://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId> e-iceblue </groupId>
<artifactId>spire.doc.free</artifactId>
<version>3.9.0</version>
</dependency>
</dependencies>
导入结果:

3. Java代码示例
import com.spire.doc.*;
import com.spire.doc.documents.DocumentObjectType;
import com.spire.doc.documents.Paragraph; public class DeleteBlankParas {
public static void main(String[] args) {
//加载Word测试文档
Document doc = new Document();
doc.loadFromFile("test.docx"); //遍历Section
for(int i = 0; i< doc.getSections().getCount();i++)
{
//获取section
Section section = doc.getSections().get(i); //遍历section中的对象
for (int j = 0;j<section.getBody().getChildObjects().getCount();j++)
{
//获取对象类型
Object object = section.getBody().getChildObjects().get(j).getDocumentObjectType(); //遍历段落
for(int z = 0 ; z<section.getParagraphs().getCount();z++)
{
//获取段落
Paragraph paragraph = section.getParagraphs().get(z); //判断对象类型是否为段落
if(object.equals(DocumentObjectType.Paragraph))
{
//判断段落内容是否为空
if(paragraph.getChildObjects().getLastItem() == null)
{
//删除空白段落
section.getBody().getParagraphs().remove(paragraph);
z--;
}
}
} }
} //保存文档
doc.saveToFile("DeleteBlankParas.docx",FileFormat.Docx_2013);
doc.dispose();
}
}
< 完 >
Java 批量删除Word中的空白段落的更多相关文章
- C# 批量删除Word超链接
对于Word文档中包含较多的超链接,如果一个个来删除很花费时间和精力,本篇文章将提供一种可用于批量删除Word中的超链接的方法.这里的超链接可以是页眉页脚处的超链接.正文中的超链接.表格中的超链接.文 ...
- 删除Word中出现的空白页
删除Word中出现的空白页 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ Word中出现空白页,怎么删都删不掉,Backspace与Delete键不管 ...
- SQLServer 命令批量删除数据库中指定表(游标循环删除)
DECLARE @tablename VARCHAR(30),@sql VARCHAR(500)DECLARE cur_delete_table CURSOR READ_ONLY FORWARD_ON ...
- SQL触发器批量删除数据库中的表
以下通过触发器批量删除数据库中的表,SQL2008已验证 DECLARE @Table NVARCHAR() DECLARE @Count Int = DECLARE tmpCur CURSOR FO ...
- 如何批量删除Docker中已经停止的容器
如何批量删除Docker中已经停止的容器 方法一: #显示所有的容器,过滤出Exited状态的容器,取出这些容器的ID, sudo docker ps -a|grep Exited|awk '{p ...
- Java-Runoob-高级教程-实例-字符串:03. Java 实例 - 删除字符串中的一个字符
ylbtech-Java-Runoob-高级教程-实例-字符串:03. Java 实例 - 删除字符串中的一个字符 1.返回顶部 1. Java 实例 - 删除字符串中的一个字符 Java 实例 以 ...
- 批量删除Windows7中隧道适配器的方法
批量删除Windows7中隧道适配器的方法 1.在网卡属性的"网络"中,将"Internet协议版本(TCP/IPv6)"前面的勾去掉. 2.在CMD下分别执行 ...
- 如何批量删除word文档中的超级链接?
有时候从网页上copy来的文章中,会带有非常多的链接,这些链接很烦人是吧?如何批量删除(一次性全部删除)word文章中的超链接呢? 有些朋友说,Ctrl+A全选文章,然后点击格式工具栏上的“清除格式” ...
- 如何删除word中多余的空格和空行
去除word中多余的空格及空行 一.去掉表格和格式 为了版面的整齐,网页文档都是以表格的形式存在的,只是一般情况下表格的颜色被设为无色或表格宽度被设为0,所以我们在网页上看不到表格.另外,网 页文档中 ...
随机推荐
- MLPerf结果证实至强® 可有效助力深度学习训练
MLPerf结果证实至强 可有效助力深度学习训练 核心与视觉计算事业部副总裁Wei Li通过博客回顾了英特尔这几年为提升深度学习性能所做的努力. 目前根据英特尔 至强 可扩展处理器的MLPerf结果显 ...
- python+selenium基础篇,弹窗处理
1.弹窗如下图所示 2.处理方法 from selenium.webdriver.common.action_chains import ActionChains#导入鼠标操作包 from selen ...
- 如果在num1的任何位置有一个数字的连续三倍,并且在num2中有一个数字的连续两倍,则返回1。 如果不是这样,则返回0
''' 它接受数字num1和num2,如果在num1的任何位置有一个数字的连续三倍,并且在num2中有一个数字的连续两倍,则返回1. 如果不是这样,则返回0 例子 triple_double(4519 ...
- Linux集群环境下NTP服务器时间同步
NTP介绍 NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议.它的用途是把计算机的时钟同步到世界协调时UTC(Universal Time ...
- 【NLP学习其一】什么是命名实体识别NER?
命名实体识别 概念 命名实体识别(Named Entity Recognition,简称NER) , 是指识别文本中具有特定意义的词(实体),主要包括人名.地名.机构名.专有名词等等,并把我们需要识别 ...
- Oracle几大后台进程
pmon,smon,dbwr,lgwr,reco,ckpt.六大核心进程.无论哪个进程出现故障,都会导致数据库实例崩溃.如果杀掉某个进程,在ALERT LOG中会发现各种错误. MMAN(Memory ...
- 带你掌握C++中三种类成员初始化方式
摘要:在C++11之后,声明时初始化->初始化列表->构造函数初始化. 本文分享自华为云社区<如何编写高效.优雅.可信代码系列(3)--类成员初始化的三种方式>,原文作者:我是 ...
- 手把手教你IDEA连接码云(Gitee)
目录 前言 一.下载.安装git 1.打开git官网,选择你的操作系统 2.根据你的系统位数选择相应的版本下载 3.安装 4.配置全局的用户名.邮箱 5.在idea中配置git目录 二.配置Gitee ...
- 每日三道面试题,通往自由的道路10——JMM篇
茫茫人海千千万万,感谢这一秒你看到这里.希望我的面试题系列能对你的有所帮助!共勉! 愿你在未来的日子,保持热爱,奔赴山海! 每日三道面试题,成就更好自我 今天我们还是继续聊聊多线程的一些其他话题吧! ...
- Unity3D-UI--Layout组件
Layout组件 自动排版 Layout Group Vertical Layout Group 垂直布局 [垂直布局组]组件将其子布局元素彼此重叠.它们的高度由各自的最小高度,首选高度和柔性高度决定 ...