2009-12-15 45 views
0

有沒有辦法確定org.apache.poi.hwpf.model.ListData的實例是否屬於編號列表或項目符號列表?如何確定org.apache.poi.hwpf.model.ListData的實例屬於編號列表或項目符號列表?

我使用Apache Poi的org.apache.poi.hwpf.HWPFDocument類來讀取word文檔的內容以生成HTML。我可以通過查看我正在使用的段落是org.apache.poi.hwpf.model.ListData的一個實例來識別文檔中的列表項。我無法找到確定ListData是否屬於項目符號列表或編號列表的方法。

回答

0

我想我已經找到了我自己的問題的答案。

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

數字格式爲項目符號點返回23,編號列表返回值爲0。我敢說,有多種格式數字可以解釋爲項目符號或編號列表,但至少我現在可以識別它們!

0

我最近發佈了另一種方式來確定列表類型。不幸的是,這種方式只能用於少數測試。

我現在可以確認leighgorys的方式來確定列表類型。

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希伯來語非標準十進制

46阿拉伯阿利夫巴塔赫

47希伯來文聖經標準

48阿拉伯文Abjad風格

49個印地文元音

50印地文輔音

51印地文編號

52印地文描述(紅雀)

53泰信

54泰號碼

55泰文描述(紅衣主教

56越南描述(主教)

57頁碼格式 - # -

58小寫俄文字母

相關問題