DOC形式のファイルの読み込み 2016/11

DOC形式のファイルを読み込んで、段落インデックスや文節インデックスとともに文字列をコンソールに表示する。
Java : 1.8.0_31
POI : 3.15
import java.io.FileInputStream;

import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.Range;
import org.apache.poi.hwpf.usermodel.Section;
import org.apache.poi.hwpf.usermodel.Paragraph;
import org.apache.poi.hwpf.usermodel.CharacterRun;

public class POIDocTest2 {

    public void test1() {
        
        try {
            HWPFDocument doc = new HWPFDocument(new FileInputStream(pathToDocument));

            Range range = doc.getRange();
            
            for (int i = 0; i < range.numSections(); i++) {
                Section section = range.getSection(i);
                System.out.println("Section : " + i);
                
                for (int j = 0; j < section.numParagraphs(); j++) {
                    Paragraph paragraph = section.getParagraph(j);
                    System.out.println("Paragraph : " + j);
                    
                    for (int n = 0; n < paragraph.numCharacterRuns(); n++) {                                                
                        CharacterRun cRun = paragraph.getCharacterRun(n);
                        System.out.print("ChatactorRun : " + n + " ");
                        
                        String line = cRun.text();
                        System.out.println(line);                        
                    }
                }
            }
        }
        catch (Exception ex) {
            ex.printStackTrace();
        }        
    }
    
    public static void main(String[] args) {
    
        new POIDocTest2().test1();
    }
    
}
※ 何ページ目の何行目という情報が欲しい場合は、ページレイアウト等から個々に計算する必要がある。