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文件。


大丸子
12 声望3 粉丝