iTextSharp - List()中的多个级别

时间:2014-02-12 14:19:41

标签: c# itextsharp

在iTextSharp中创建嵌套列表很简单

var list = new List(true);
list.add("Something here");
list.add("Something else here");
var nestedList = new List(true);
nestedList.add("Some other value");
list.add(nestedList);
document.add(list); // assuming here of course you have 
                    // created an instance of Document()!

会产生一些非常基本的东西,比如

  1. 这里的东西
  2. 这里还有别的东西
    1. 其他一些价值
  3. 我想创造一些更复杂的东西;我正在创建一个包含子句和子子句的文档,因此希望列出每个列表项:

    1. Parent list item
    1.1 Something here
    1.2 Something else here
    

    但我无法在API中找到可能的地方。我能想到的唯一方法是使用Paragraph(),但还有其他人遇到过更优雅的解决方案吗?

    由于

1 个答案:

答案 0 :(得分:2)

我能看到的唯一方法是手动跟踪父嵌套并使用PreSymbol属性进行设置。

如下:

                List list = new List(List.ORDERED, 20f);
                list.IndentationLeft = 20f;

                // add sublist
                List subList = new List(List.ORDERED);
                subList.PreSymbol = string.Format("{0}.", i);
                subList.Add("Something here");
                subList.Add("Something else here");

                list.Add(subList);

                doc.Add(list);

这将导致:

Screen grab