Java 移除Word文档中的脚注

Word文档提供了脚注的功能方便大家为标注内容进行拓展或解释,而不影响文章的连贯性。如果我们不需要相关的注释,可以将脚注删除,从而只保留文章主体部分。而如果使用微软Word对脚注进行注意删除,会非常费时费力。特别是非常大的文档,需要操作者花费巨大的时间和经历。本文给大家介绍一种方法,通过简单的编程,即可移除Word文档中的所有脚注,方便快捷,无需大量操作。
此方法需要用到免费的库:Free Spire.Doc for Java,需要引用相关Jar文件到项目中。可以通过以下方式进行引用:

1. 使用Maven

复制下面的代码到项目文件夹下的“pom.xml“文件中

<repositories>
        <repository>
            <id>com.e-iceblue</id>
            <name>e-iceblue</name>
         <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.doc.free</artifactId>
        <version>5.2.0</version>
    </dependency>
</dependencies>

2. 官网下载

Spire.Doc for Java免费版官网下载免费版,解压后,在“Project Structure“中,找到”Modules“,然后在其中的“Dependencies”中,添加解压出的“lib”文件夹下的Spire.Doc.jar文件。

移除Word文档中的脚注

创建 Document 类的对象。
Document.loadFromFile() 方法从磁盘加载 Word 文档。
循环遍历文档中的所有节,节中的所有段落,以及段落中的所有子对象,并判断子对象是否是脚注。然后再用 Paragraph.getChildObjects().removeAt() 方法逐一删除脚注。
Document.saveToFile() 方法保存文档。

代码示例

import com.spire.doc.*;
import com.spire.doc.fields.*;
import com.spire.doc.documents.*;
import java.util.*;

public class RemoveFootnote {
    public static void main(String[] args) {

        //创建 Document 类的对象
        Document document = new Document();

        //从磁盘加载 Word 文档
        document.loadFromFile("D:/Samples/Sample.docx");

        //在所有节中循环
        for (int i = 0; i < document.getSections().getCount(); i++) {

            //获取指定节
            Section section = document.getSections().get(i);

            //在该节中的段落中循环
            for (int j = 0; j < section.getParagraphs().getCount(); j++)
            {
                //获取指定段落
                Paragraph para = section.getParagraphs().get(j);

                //创建列表
                List<Footnote> footnotes = new ArrayList<>();

                //在段落的所有子对象中循环
                for (int k = 0, cnt = para.getChildObjects().getCount(); k < cnt; k++)
                {
                    //获取指定子对象
                    ParagraphBase pBase = (ParagraphBase)para.getChildObjects().get(k);

                    //判断该子对象是否为脚注
                    if (pBase instanceof Footnote)
                    {
                        Footnote footnote = (Footnote)pBase;
                        //将脚注添加到列表中
                        footnotes.add(footnote);
                    }
                }
                if (footnotes != null) {

                    //在列表中的脚注中循环
                    for (int y = 0; y < footnotes.size(); y++) {

                        //删除指定脚注
                        para.getChildObjects().remove(footnotes.get(y));
                    }
                }
            }
        }

        //保存文档
        document.saveToFile("output/removeFootnote.docx", FileFormat.Docx);
    }
}

移除效果
移除Word文档中的脚注

以上引用的是免费的Free Spire.PDF for Java中的JAR文件。

1 声望
0 粉丝
0 条评论
推荐阅读
Java 合并PDF文件
对于内容联系比较紧密,但是却被分成多个文件的PDF文档,我们可以将其合并为一个PDF文档,方便我们阅读内容以及处理文档。本文将介绍一种用Java编程实现合并PDF文档的方法。

大丸阅读 1k

Java12的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft63阅读 11.9k

Java8的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft32阅读 24.7k评论 1

一文搞懂秒杀系统,欢迎参与开源,提交PR,提高竞争力。早日上岸,升职加薪。
前言秒杀和高并发是面试的高频考点,也是我们做电商项目必知必会的场景。欢迎大家参与我们的开源项目,提交PR,提高竞争力。早日上岸,升职加薪。知识点详解秒杀系统架构图秒杀流程图秒杀系统设计这篇文章一万多...

王中阳Go34阅读 2.6k评论 1

封面图
Java11的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft28阅读 15.4k评论 3

Java5的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft13阅读 20.5k

Java9的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft20阅读 14.6k

1 声望
0 粉丝
宣传栏