JavaはWordで脚注と文末脚注を読む方法

脚注は文章の内容を補充し説明するときに役に立ちます、Wordを使用している中よく見える機能の一つです。今回の記事はWordで脚注と文末脚注を読む方法を紹介します。

注:この記事では、Wordライブラリー(Java Free Editionの場合はFree Spire.Doc)を使用して読み取ります。公式Webサイトからライブラリーをダウンロードし、ファイルを解凍して、JavaプログラムをlibフォルダーのSpire.Doc.jarにインポートできます。または、Mavenリポジトリを介してインストールおよびインポートします。

 

jarインポートした結果は次のとおりです。

f:id:uha_noki:20211217104943p:plain

テストドキュメントは、脚注と文末脚注を含めて次のとおりです。

f:id:uha_noki:20211217105011p:plain

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("C:\\Users\\Administrator\\Desktop\\Sample.docx");

        //ドキュメント内のすべての脚注を取得する
       
List<Footnote> footNotes = doc.getFootnotes();

        //文字列型変数インスタンス化する
       
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);
    }
}

脚注の読み取り結果:

f:id:uha_noki:20211217105000p:plain

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("C:\\Users\\Administrator\\Desktop\\Sample.docx");

        //ドキュメント内のすべての文末脚注を取得する
       
List<Footnote> endNotes = doc.getEndnotes();
        //文字列型変数をインスタンス化する
       
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);
    }
}

文末脚注の読み取り結果:

f:id:uha_noki:20211217105125p:plain

以上は今回の記事の紹介でした、最後まで読んでいただきありがとうございます。