Java ColumnText中的列表丢失了直接添加到文档中时显示的数据

Java ColumnText中的列表丢失了直接添加到文档中时显示的数据,java,itext,Java,Itext,我正在使用iText 5.1.3。ColumnText中的列表不完整,如添加到文档时成功实现的完整列表所示。如果我取消对该行的注释: // list2.add(new ListItem(new Chunk("Level 2 - Item 3"))); 它们看起来都是一样的;但是,我想要的列表格式是完全删除该行 public class TestList { public static void main(String[] args) throws IOException, Docum

我正在使用iText 5.1.3。ColumnText中的列表不完整,如添加到文档时成功实现的完整列表所示。如果我取消对该行的注释:

// list2.add(new ListItem(new Chunk("Level 2 - Item 3")));
它们看起来都是一样的;但是,我想要的列表格式是完全删除该行

public class TestList
{

    public static void main(String[] args) throws IOException, DocumentException
    {
        Document document = new Document();
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("testlist.pdf"));
        document.open();
        List list1 = new List(List.ALPHABETICAL, 20);
        list1.add(new ListItem(new Chunk("Level 1 - Item 1")));
        list1.add(new ListItem(new Chunk("Level 1 - Item 2")));
        list1.add(new ListItem(new Chunk("Level 1 - Item 3")));

        List list2 = new List(List.ORDERED, 20);
        list2.add(new ListItem(new Chunk("Level 2 - Item 1")));
        list2.add(new ListItem(new Chunk("Level 2 - Item 2")));

        List list3 = new List(List.ORDERED, 20);
        list3.add(new ListItem(new Chunk("Level 3 - Item 1")));
        list3.add(new ListItem(new Chunk("Level 3 - Item 2")));
        list3.add(new ListItem(new Chunk("Level 3 - Item 3")));
        list3.add(new ListItem(new Chunk("Level 3 - Item 4")));
        list2.add(list3);

        // list2.add(new ListItem(new Chunk("Level 2 - Item 3")));
        list1.add(list2);

        list1.add(new ListItem(new Chunk("Level 1 - Item 4")));
        document.add(list1);
        document.newPage();

        ColumnText cols = new ColumnText(writer.getDirectContent());
        cols.setSimpleColumn(36, 36, 549, 806);
        cols.addElement(list1);
        cols.go();

        document.close();
    }
}

如何在ColumnText中也获得所需的行为。我已经尝试了我能想到的一切,但我不知所措。

我不知道为什么它会起作用,但我只是在玩玩,如果你把注释掉的行改为列表2。添加(“”);它按预期工作。不过对我来说更像是黑客。最后的代码如下所示:

public class TestList
{

    public static void main(String[] args) throws IOException, DocumentException
    {
        Document document = new Document();
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("testlist.pdf"));
        document.open();
        List list1 = new List(List.ALPHABETICAL, 20);
        list1.add(new ListItem(new Chunk("Level 1 - Item 1")));
        list1.add(new ListItem(new Chunk("Level 1 - Item 2")));
        list1.add(new ListItem(new Chunk("Level 1 - Item 3")));

        List list2 = new List(List.ORDERED, 20);
        list2.add(new ListItem(new Chunk("Level 2 - Item 1")));
        list2.add(new ListItem(new Chunk("Level 2 - Item 2")));

        List list3 = new List(List.ORDERED, 20);
        list3.add(new ListItem(new Chunk("Level 3 - Item 1")));
        list3.add(new ListItem(new Chunk("Level 3 - Item 2")));
        list3.add(new ListItem(new Chunk("Level 3 - Item 3")));
        list3.add(new ListItem(new Chunk("Level 3 - Item 4")));
        list2.add(list3);

        list2.add(""); // Changed line.
        list1.add(list2);

        list1.add(new ListItem(new Chunk("Level 1 - Item 4")));
        document.add(list1);
        document.newPage();

        ColumnText cols = new ColumnText(writer.getDirectContent());
        cols.setSimpleColumn(36, 36, 549, 806);
        cols.addElement(list1);
        cols.go();

        document.close();
    }
}
必须与在第2级关闭列表有关。我在各地都看到过这个问题,但从来没有回答过,所以我希望有人觉得这有帮助