首页 > 解决方案 > 我们可以使用 Itext 7 对齐嵌套/子列表而不使用缩进吗?有没有办法使用 Itext 7 List API 来实现这一点?

问题描述

这是示例 HTML,可以观察有无“显示和填充”样式之间的区别。

期望在 Itext7 中得到相同的结果。

考虑具有一层嵌套的列表,期望子级呈现与其父级相同的级别而没有缩进。

<!DOCTYPE html>
<html>
<head>
<style>
ol.a {  list-style-type: decimal;  }
ol.b {  list-style-type: lower-roman;  display:inline;  padding:0px;  }
</style>
</head>

<body>
  <h2>Lists</h2>
  <p>Example of Flat Simple lists:</p>
  <ol class="a">
    <li>Item 1</li>
    <li>Item 2</li> 
      <ol class="b" >
        <li>Sub Item 1</li>                  
        <li>Sub Item 2</li>           
      </ol>   
    <li>Item 3</li>
  </ol>
</body>
</html>

预期结果:

 1.Item 1
 2.Item 2
 i.Sub Item 1
ii.Sub Item 2
 3.Item 3

我需要与给定的预期输出相同的输出。

当前尝试:

这是我现在使用的代码,但它给出了预期的输出

PdfWriter writer = new PdfWriter("results/listIndent.pdf");

//Initialize PDF document
PdfDocument pdf = new PdfDocument(writer);

// Initialize document
Document document = new Document(pdf);

PdfFont font = dfFontFactory.createFont(StandardFonts.TIMES_ROMAN);
// Add a Paragraph
document.add(new Paragraph("List using iText7:").setFont(font));

List topLevel = new List(ListNumberingType.DECIMAL);

ListItem item1 = new ListItem();
item1.add(new Paragraph().add("Item 1"));

List secondLevel = new List(ListNumberingType.ROMAN_LOWER);
secondLevel.add("Sub Item 1");
secondLevel.add("Sub Item 2");

item1.add(secondLevel);
topLevel.add(item1);
topLevel.add("Item 2");
topLevel.add("Item 3");

document.add(topLevel);
document.close();

标签: javapdf-generationitext7

解决方案


推荐阅读