java - 如何创建没有缩进的列表?

标签 java itext itextpdf

是否可以创建没有缩进的编号列表?类似这样的事情:

1个

1-1 A_A

2B

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);

我们得到这样的结果:

enter image description here

如有必要,会在标签和列表项的内容之间添加额外的空格。

您的问题是:我们如何删除这个缩进。只需在代码中添加一行即可:

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);

现在结果如下所示:

enter image description here

如您所见,第 8 项和第 9 项之后没有添加额外的空格。

这个答案是如此简单,以至于我无法相信这实际上是整个问题(如果是,那就意味着您自己没有做任何努力)。看看想要的结果,我认为还有更多的东西在起作用,而不是您在帖子主题中提到的内容。

我明白了:

  • 自定义编号:编号后无 .
  • 嵌套结构: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_18_29_1 等的结果,因此我们使用 setPreSymbol() 方法,如下所示:

list.setPreSymbol(String.valueOf(8 + i) + "_");

现在结果如下所示:

enter image description here

显然,有人可能会争论:为什么要使用 List 来获得这种结果?为什么不只是一系列 Paragraph 对象。但是:如果您要创建带标签的 PDF,最好使用 List,因为 iText 会自动将该内容标记为列表(例如,在可访问性上下文中)。

关于java - 如何创建没有缩进的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33277998/

相关文章:

java - 为什么我需要结合 BeanListProcessor 调用 parseLine 两次

java - Android 8+ -如何在 android 中以编程方式连接到 wifi 网络?

c# - 将 PDF 转换为 PDF/A3 或将 PDF/A-1 转换为 PDF/A-3

java - 嵌套的 iText PdfPTable 边框宽度

java - 如何在java中使用iText添加pdf的页面背景颜色

java - Android WebView 打开链接

java - 查找数组中第二大偶数整数的有效方法

c# - 使用 iTextSharp 裁剪 PDF

c# - iTextSharp 从字节数组列表创建 pdf

java - itextpdf : rectangle modify width