列出Java中iText中的字母和项目符号问题

时间:2012-09-08 20:32:27

标签: java list itext

为什么会这样:

lA = new List(List.ORDERED, List.ALPHABETICAL); 
lA.setLowercase(List.LOWERCASE);
lA.setPostSymbol(") ");

但这不是:

lQL = new List(List.UNORDERED); 
lQL.setListSymbol("=");
lQL.setPostSymbol("  ");

在每个项目前面的第一个例子是“a)”或“b)”或“c)”等... 在第二个例子中,每个项目前面只有“=”。

在任何想法之前,有两件事。首先,我不能这样做:lQL.setListSymbol("= ");。我可以解释一下,但只要顺其自然,它就更简单了。其次,我尝试将第二个字符串设置为“k”(所以它不仅仅是空格),但输出仍然是“=”......

发生了什么事?

2 个答案:

答案 0 :(得分:2)

因为您已明确指出您希望无序列表包含List.UNORDERED。因此,您不会获得任何订单,因此不会使用帖子符号。

来自setPostSymbol的文档:

  

设置必须在数字或字母之后添加的字符串   列表符号。

来自List的源代码:

  137       /**
  138        * In case you are using numbered/lettered lists, this String is added after the number/letter.
  139        * @since   iText 2.1.1
  140        */
  141       protected String postSymbol = ". ";

此号码或字母只会添加到有序列表中,即List.ORDERED。如果检查List的构造函数的第一个参数,您将看到它接收一个布尔值来指示列表是否编号。由于您传递了List.UNORDERED,其值为false,因此您将无法获得编号列表,因此,postSymbol将不会被追加。

答案 1 :(得分:0)

要设置或取消设置数字,字母或项目符号,请使用以下单个代码列表,使用iText pdf out或仅使用列表。

例如,对于没有子弹或字符串的列表或打印帐单中通常需要的编号。

List list = new List(false, false, 50);
list.setListSymbol(" ");

感谢您的提问..