iText7缩进列表格式(Java)

iText7缩进列表格式(Java),java,itext,nested-lists,itext7,Java,Itext,Nested Lists,Itext7,我正在使用iText 7创建一个列表。我需要有多个层次的缩进 例如: 项目1 分项目1 分项目2 分项目1 分项目2 项目2 分项目1 分项目2 分项目1 分项目2-分项目1 分项目2 分项目1 分项目2 项目3 分项目1 分项目2 分项目1 分项目2 当前尝试: public void IndentedList() throws IOException { String filePath = dest + "Example2.pdf"; File

我正在使用iText 7创建一个列表。我需要有多个层次的缩进

例如:

  • 项目1
    • 分项目1
    • 分项目2
      • 分项目1
      • 分项目2
  • 项目2
    • 分项目1
    • 分项目2
      • 分项目1
      • 分项目2-分项目1
    • 分项目2
      • 分项目1
      • 分项目2
  • 项目3
    • 分项目1
    • 分项目2
      • 分项目1
      • 分项目2
当前尝试:

public void IndentedList() throws IOException {
    String filePath = dest + "Example2.pdf";
    File file = new File(filePath);
    file.getParentFile().mkdirs();

    PdfWriter writer = new PdfWriter(filePath);
    PdfDocument pdf = new PdfDocument(writer);

    Document document = new Document(pdf);

    PdfFont font = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);

    document.add(new Paragraph("iText is: ").setFont(font));

    List list = new List()
            .setSymbolIndent(12)
            .setListSymbol("\u2022")
            .setFont(font);

    list
            .add(new ListItem("Item 1"))
            .add(new ListItem("SubItem1"))
            .add(new ListItem("Sub Sub Item 1"))
            .add(new ListItem("Sub Sub Item 2"));
            .add(new ListItem("Item 1"))
            .add(new ListItem("SubItem1"))
            .add(new ListItem("Sub Sub Item 1"))
            .add(new ListItem("Sub Sub Item 2"));
    document.add(list);
    document.close();
}
我认为应该有一种方法以某种方式缩进特定的列表项


提前谢谢

请查看文档,更具体地说是本教程的文档

当前您没有嵌套列表。将每个列表项添加到顶级列表中。您需要嵌套列表,例如,请参见:

public void createPdf(String dest) throws IOException {
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    Document document = new Document(pdf);
    List topLevel = new List();
    ListItem item1 = new ListItem();
    item1.add(new Paragraph().add("Item 1"));
        List secondLevel = new List();
        secondLevel.add("Sub Item 1");
        ListItem subItem2 = new ListItem();
        subItem2.add(new Paragraph("Sub Item 2"));
            List thirdLevel = new List();
            thirdLevel.add("Sub Sub Item 1");
            thirdLevel.add("Sub Sub Item 2");
        subItem2.add(thirdLevel);
        secondLevel.add(subItem2);
    item1.add(secondLevel);
    topLevel.add(item1);
    document.add(topLevel);
    document.close();
}
生成的PDF如下所示:


如您所见,子列表是缩进的,因为您将
列表
对象添加到
列表项
。这是真正的筑巢。在代码中,您没有引入层次结构,这就是为什么您没有得到期望的结果。

这正是我所需要的。非常感谢你。