首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确定org.apache.poi.hwpf.model.ListData实例属于编号列表或项目符号列表?

如何确定org.apache.poi.hwpf.model.ListData实例属于编号列表或项目符号列表?
EN

Stack Overflow用户
提问于 2009-12-16 00:00:13
回答 3查看 2.1K关注 0票数 0

有没有办法确定org.apache.poi.hwpf.model.ListData的实例是否属于编号列表或项目符号列表?

我使用Apache Poi的org.apache.poi.hwpf.HWPFDocument类来读取word文档的内容,以便生成超文本标记语言。我可以通过检查我正在处理的段落是否是org.apache.poi.hwpf.model.ListData的实例来识别文档中的列表项。我找不到一种方法来确定ListData属于项目符号列表还是编号列表。

EN

回答 3

Stack Overflow用户

发布于 2009-12-16 18:19:34

我想我已经找到了我自己问题的答案。

代码语言:javascript
复制
ListEntry aListEntry = (ListEntry) aParagraph;
ListData listData = listTables.getListData(aListEntry.getIlfo());
int numberFormat = listData.getLevel(listData.numLevels()).getNumberFormat();

数字格式为项目符号返回23,为编号列表返回0。我敢说,有多种格式的数字可以解释为项目符号或编号列表,但至少我现在可以识别它们!

票数 0
EN

Stack Overflow用户

发布于 2010-03-06 04:52:10

我最近发布了另一种确定列表类型的方法。不幸的是,这种方式只对几个测试有效。

我现在可以确认leighgory确定列表类型的方式了。

票数 0
EN

Stack Overflow用户

发布于 2010-05-19 17:05:36

代码语言:javascript
复制
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圆形编号(圆形)。

19双字节阿拉伯数字

20 46个拼音双字节片假名字符(_aiueo_dbchar)。

21 46拼音双字节片假名字符(_iroha_dbchar)。

22阿拉伯语,前导为零(01,02,03,...,10,11)

23个项目符号(根本没有数字)

24朝鲜语数字2(假名)。

25朝鲜语数字1(选择)。

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阿拉伯文Alif Ba Tah

47希伯来语圣经标准

48阿拉伯Abjad风格

49个印地语元音

50个印地语辅音

51个印地语数字

52印地语描述性(基数)

53个泰文字母

54泰文数字

55泰语描述性(基数

56越南语描述性(基数)

57页码格式-#-

58小写俄文字母

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1908429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档