0

のインスタンスがorg.apache.poi.hwpf.model.ListData番号付きリストまたは箇条書きリストに属しているかどうかを判断する方法はありますか?

HTML を生成するために、 Apache Poi のorg.apache.poi.hwpf.HWPFDocumentクラスを使用して Word 文書の内容を読み取ります。作業中の段落が のインスタンスであることを確認することで、文書内のリスト項目を識別できますorg.apache.poi.hwpf.model.ListDataListData箇条書きリストまたは番号付きリストに属しているかどうかを判断する方法が見つかりません。

4

3 に答える 3

0

私は最近、リストタイプを決定する別の方法を投稿しました。残念ながら、この方法はいくつかのテストでしか機能しませんでした。

これで、リストタイプを判別するためのleighgorysの方法を確認できます。

于 2010-03-05T20:52:10.177 に答える
0

私は自分自身の質問に対する答えを見つけたと思います。

ListEntry aListEntry = (ListEntry) aParagraph;
ListData listData = listTables.getListData(aListEntry.getIlfo());
int numberFormat = listData.getLevel(listData.numLevels()).getNumberFormat();

数値形式は、箇条書きの場合は 23 を返し、番号付きリストの場合は 0 を返します。箇条書きまたは番号付きリストとして解釈できる形式の数字が複数あるとあえて言いますが、少なくともそれらを特定できるようになりました!

于 2009-12-16T10:19:33.997 に答える
0
public class ListTest {

public static void main(String[] args) {

    String filename = "/some/path/to/ListTest.doc";

    try {

        POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(filename));
        HWPFDocument doc = new HWPFDocument(fs);
        //Get a table of all the lists in this document
        ListTables listtables = doc.getListTables();
        Paragraph para;

        Range range = doc.getRange();
        for(int x=0; x<range.numParagraphs(); x++) {
            para = range.getParagraph(x);

           //When non-zero, (1-based) index into the pllfo
           //identifying the list to which the paragraph belongs
           if( para.getIlfo()!=0 ) {
                //Get the list this paragraph belongs to
                ListData listdata = listtables.getListData(para.getIlfo());
                //Now get all the levels for this list
                ListLevel[] listlevel = listdata.getLevels();
                //Find the list level info for our paragraph
                ListLevel level = listlevel[para.getIlvl()];
                System.out.print("Text: \"" + para.text() + "\"");
                //list level for this paragraph
                System.out.print("\tListLevel: " + para.getIlvl());
                //Additional text associated with list symbols
                System.out.print("\tgetNumberText: \"" + level.getNumberText() + "\"" );
                //Format value for the style of list symbols
                System.out.println("\tgetNumberFormat: " + level.getNumberFormat() );
            } else {
                System.out.println();
            }
        }
    } catch(Exception e) {
        e.printStackTrace();
    }
 }
}

nfc 値 番号付けスキーム

15 半角文字

16 漢字ナンバリング 3 (dbnum3)。

17 漢字ナンバリング 4 (dbnum4)。

18 円の番号付け (circlenum)。

19 全角アラビア数字

20 46 の表音全角カタカナ文字 ( aiueo dbchar )。

21 46 の表音全角カタカナ文字 ( iroha dbchar )。

22 先行ゼロ付きのアラビア語 (01、02、03、...、10、11)

23 箇条書き (番号なし)

24 韓国語の番号 2 (ganada)。

25 韓国のナンバリング 1 (chosung)。

26 中国語の番号 1 (gb1)。

27 中国語番号 2 (gb2)。

28 中国語のナンバリング 3 (gb3)。

29 中国語の番号 4 (gb4)。

30 干支番号 1

31 干支番号 2

32 中国の干支番号 3

33 台湾全角数字 1

34 台湾全角数字 2

35 台湾全角数字 3

36 台湾全角数字 4

37 中国語全角数字 1

38 中国語全角数字 2

39 中国語全角数字 3

40 中国語全角数字 4

41 韓国語全角数字 1

42 韓国語全角数字 2

43 韓国語全角数字 3

44 韓国語全角数字 4

45 ヘブライ語の非標準 10 進数

46 アラビア語のアリフ・バー・ター

47 ヘブライ語の聖書基準

48 アラビア語のアブジャド スタイル

49 ヒンディー語の母音

50個のヒンディー語の子音

51 ヒンディー数字

52 ヒンディー語記述 (枢機卿)

53 タイ文字

54 タイ数字

55 タイ語の記述 (枢機卿)

56 ベトナム語の記述 (枢機卿)

57 ページ番号フォーマット - # -

58 小文字のロシア語アルファベット

于 2010-05-19T09:05:35.967 に答える