iText7列表内置12中列表符号,还可以使用自定义符号或图片作为符号,例如:
如果需要使用中文数字编号并且自动增长,有两种方法:
1、插入列表时,对每一项都调用ListItem的setListSymbol方法设置中文编号。如下:
item.setListSymbol(new Text("一、")); ... item.setListSymbol(new Text("二、"));
2、实现IListSymbolFactory
@Override
public IElement createSymbol(int i, IPropertyContainer iPropertyContainer, IPropertyContainer iPropertyContainer1) {
return new Text((StringUtils.hasText(this.prefix) ? this.prefix :DEFAULT_PREFIX) +
ChineseNumberConverter.convert(i) +
(StringUtils.hasText(this.suffix)?this.suffix :DEFAULT_SUFFIX))
.addStyle(style);
}
其中ChineseNumberConverter.convert(i)把序号转换为中文数字,例如:1->一、2->二、3->三等。
prefix和suffix可以为“(”,“)”等,也可空,构造时传入。
使用时,在List上设置。List上没有直接接受IListSymbolFactory类型为参数的setListSymbol方法。使用:
list.setProperty(Property.LIST_SYMBOL, symbolFactory);
效果如下: