zoukankan      html  css  js  c++  java
  • 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);
        }
    }

    尾注读取结果:

  • 相关阅读:
    Visual Studio 中的 .NET Framework 类库
    泛型
    泛型
    事件
    基于事件的异步模式
    使用委托进行异步编程
    使用 IAsyncResult 调用异步方法
    异步编程设计模式
    演练:使用VS2010 C# 创作简单的多线程组件
    [转][MEF插件式开发] 一个简单的例子
  • 原文地址:https://www.cnblogs.com/Yesi/p/12448959.html
Copyright © 2011-2022 走看看