Java 读取Word中的脚注、尾注

本文介绍读取Word中的脚注及尾注的方法,添加脚注、尾注可以参考这篇文章

:本文使用了Word类库(Free Spire.Doc for Java 免费版)来读取,获取该类库可通过官网下载,并解压文件,将lib文件夹下的Spire.Doc.jar导入java程序;或者通过maven仓库安装导入

jar导入效果如下:

测试文档如下,包含脚注及尾注:

 

1. 读取Word脚注

复制代码
import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.Footnote;
import com.spire.doc.fields.TextRange;

import java.util.List;

public class ExtractFootnoteAndEndnote {
    public static void main(String[] args) {
        //创建Document实例
        Document doc = new Document();
        doc.loadFromFile("test1.docx");

        //获取文档中的所有脚注
       List<Footnote> footNotes = doc.getFootnotes();

       //实例化String类型变量
       String str = "";

       //遍历脚注
        for (Footnote footNote :footNotes) {
            //遍历脚注中的段落
            for (int j = 0; j < footNote.getTextBody().getParagraphs().getCount(); j++) {
                Paragraph paragraph = footNote.getTextBody().getParagraphs().get(j);
                //遍历段落中的对象
               for(Object object : paragraph.getChildObjects()){
                   //读取文本
                   if (object instanceof TextRange) {
                       TextRange textRange = (TextRange) object;
                       str = str + textRange.getText();
                   }
               }

            }
        }
        //输出脚注文本
        System.out.println(str);
    }
}
复制代码

脚注读取结果:

 

2. 读取Word尾注

复制代码
import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.Footnote;
import com.spire.doc.fields.TextRange;

import java.util.List;

public class ExtractFootnoteAndEndnote {
    public static void main(String[] args) {
        //创建Document实例
        Document doc = new Document();
        doc.loadFromFile("test1.docx");

       //获取所有尾注
        List<Footnote> endNotes = doc.getEndnotes();
        //实例化String类型变量
        String str = "";

        //遍历尾注
        for (Footnote endnote :endNotes) {
            //遍历尾注中的段落
            for (int j = 0; j < endnote.getTextBody().getParagraphs().getCount(); j++) {
                Paragraph paragraph = endnote.getTextBody().getParagraphs().get(j);
                //遍历段落中的对象
                for(Object object : paragraph.getChildObjects()){
                    //读取文本
                    if (object instanceof TextRange) {
                        TextRange textRange = (TextRange) object;
                        str = str + textRange.getText();
                    }
                }
            }
        }
        //输出尾注文本
        System.out.println(str);
    }
}
复制代码

尾注读取结果:

 

posted @   E-iceblue  阅读(841)  评论(0编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
历史上的今天:
2016-03-09 C# 在Word文档中生成条形码
点击右上角即可分享
微信分享提示