如何创建没有缩进的列表?
How to create a list without indentation?
是否可以创建没有缩进的编号列表?类似的东西:
1个
1-1 A_A
2乙
2-1 B_B
2-1-1 B_B_B
请查看 ListNumbers 个示例。
当我们像这样创建一个有序列表时:
List list1 = new List(List.ORDERED);
list1.setFirst(8);
for (int i = 0; i < 5; i++) {
list1.add("item");
}
document.add(list1);
我们得到这样的结果:
必要时,在标签和列表项的内容之间添加额外的 space。
你的问题是:我们怎样才能去掉这个缩进。这是在您的代码中添加一行的问题:
List list2 = new List(List.ORDERED);
list2.setFirst(8);
list2.setAlignindent(false);
for (int i = 0; i < 5; i++) {
list2.add("item");
}
document.add(list2);
现在结果是这样的:
如您所见,在第 8 项和第 9 项之后没有添加额外的 space。
这个答案太简单了,我简直不敢相信这实际上就是整个问题(如果是,那就意味着您自己没有做任何努力)。看看期望的结果,我认为比你在 post.
的主题中提到的要多
我明白了:
- 自定义编号:数字后无
.
。
- 一个嵌套结构:2,接着是2_1,依此类推。
可以使用 setPreSymbol()
和 setPostSymbol()
方法更改有序列表的列表符号。
看看这个片段:
List list3 = new List(List.ORDERED);
list3.setFirst(8);
list3.setAlignindent(false);
list3.setPostSymbol(" ");
for (int i = 0; i < 5; i++) {
list3.add("item");
List list = new List(List.ORDERED);
list.setPreSymbol(String.valueOf(8 + i) + "_");
list.setPostSymbol(" ");
list.add("item 1");
list.add("item 2");
list3.add(list);
}
document.add(list3);
首先我们删除自动添加在每个数字后面的点,为此我们使用getPostSymbol()
方法:
list3.setPostSymbol(" ");
然后我们将 list
嵌套在 list3
中。因为我们想要得到类似 8_1
、8_2
、9_1
等的结果,所以我们使用 setPreSymbol()
方法,如下所示:
list.setPreSymbol(String.valueOf(8 + i) + "_");
现在结果是这样的:
显然,有人可能会争辩说:为什么要对这种结果使用 List
?为什么不只是一系列 Paragraph
对象。但是:如果您正在创建带标签的 PDF,最好使用 List
,因为 iText 会自动将该内容标记为列表(例如,在可访问性的上下文中)。
是否可以创建没有缩进的编号列表?类似的东西:
1个
1-1 A_A
2乙
2-1 B_B
2-1-1 B_B_B
请查看 ListNumbers 个示例。
当我们像这样创建一个有序列表时:
List list1 = new List(List.ORDERED);
list1.setFirst(8);
for (int i = 0; i < 5; i++) {
list1.add("item");
}
document.add(list1);
我们得到这样的结果:
必要时,在标签和列表项的内容之间添加额外的 space。
你的问题是:我们怎样才能去掉这个缩进。这是在您的代码中添加一行的问题:
List list2 = new List(List.ORDERED);
list2.setFirst(8);
list2.setAlignindent(false);
for (int i = 0; i < 5; i++) {
list2.add("item");
}
document.add(list2);
现在结果是这样的:
如您所见,在第 8 项和第 9 项之后没有添加额外的 space。
这个答案太简单了,我简直不敢相信这实际上就是整个问题(如果是,那就意味着您自己没有做任何努力)。看看期望的结果,我认为比你在 post.
的主题中提到的要多我明白了:
- 自定义编号:数字后无
.
。 - 一个嵌套结构:2,接着是2_1,依此类推。
可以使用 setPreSymbol()
和 setPostSymbol()
方法更改有序列表的列表符号。
看看这个片段:
List list3 = new List(List.ORDERED);
list3.setFirst(8);
list3.setAlignindent(false);
list3.setPostSymbol(" ");
for (int i = 0; i < 5; i++) {
list3.add("item");
List list = new List(List.ORDERED);
list.setPreSymbol(String.valueOf(8 + i) + "_");
list.setPostSymbol(" ");
list.add("item 1");
list.add("item 2");
list3.add(list);
}
document.add(list3);
首先我们删除自动添加在每个数字后面的点,为此我们使用getPostSymbol()
方法:
list3.setPostSymbol(" ");
然后我们将 list
嵌套在 list3
中。因为我们想要得到类似 8_1
、8_2
、9_1
等的结果,所以我们使用 setPreSymbol()
方法,如下所示:
list.setPreSymbol(String.valueOf(8 + i) + "_");
现在结果是这样的:
显然,有人可能会争辩说:为什么要对这种结果使用 List
?为什么不只是一系列 Paragraph
对象。但是:如果您正在创建带标签的 PDF,最好使用 List
,因为 iText 会自动将该内容标记为列表(例如,在可访问性的上下文中)。