iText中具有“开始”属性的有序列表

时间:2018-08-09 08:21:15

标签: html itext

在我的一个项目中,我具有将HTML文本转换为PDF文件的功能。为此,我使用iText 2.1.7,更具体地说,使用HTMLWorker类。顺便说一句,用户还可以在其中放置有序列表(<ol>),并使它们从给定索引开始。像这样:

enter image description here

相应的HTML是这样的:

<ol start="4" style="list-style-type: decimal;">
...
</ol>

但是,iText(在转换过程中)会跳过start属性,生成从1开始的列表:

enter image description here

有没有办法维护该属性,并在最终的PDF中产生相同的结果?谢谢您的见识。

1 个答案:

答案 0 :(得分:0)

最新版本的iText无法重现您的问题。

我使用了以下HTML文件(lists.html):

<body>
<div>
    <ol start="4" style="list-style-type: decimal;">
        <li>Element 1</li>
        <li>Element 2</li>
        <li>Element 2</li>
    </ol>
</div>
</body>

然后,我将以下Java代码与iText 7.1.2pdfHTML 2.0.2一起使用。

import java.io.File;
import java.io.IOException;

import com.itextpdf.html2pdf.HtmlConverter;

public class Lists {
    public static final String SRC = "src/main/resources/html/lists.html";
    public static final String DEST = "target/results/lists.pdf";

    public static void main(String[] args) throws IOException {
        File file = new File("target/results/");
        file.mkdirs();
        new Lists().createPdf(SRC, DEST);
    }

    public void createPdf(String src, String dest) throws IOException {
        HtmlConverter.convertToPdf(new File(src), new File(dest));
    }
}

生成的PDF(lists.pdf)如下:

enter image description here

您表示您正在使用iText 2.1.7。该版本的日期可以追溯到2009年,而旧的HTMLWorker功能由于无法修复而被废弃了很多年。请查阅official HTML to PDF tutorial的简介,以概述使用iText将HTML转换为PDF的历史。