在我的一个项目中,我具有将HTML文本转换为PDF文件的功能。为此,我使用iText 2.1.7,更具体地说,使用HTMLWorker
类。顺便说一句,用户还可以在其中放置有序列表(<ol>
),并使它们从给定索引开始。像这样:
相应的HTML是这样的:
<ol start="4" style="list-style-type: decimal;">
...
</ol>
但是,iText(在转换过程中)会跳过start
属性,生成从1开始的列表:
有没有办法维护该属性,并在最终的PDF中产生相同的结果?谢谢您的见识。
答案 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.2和pdfHTML 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
)如下:
您表示您正在使用iText 2.1.7。该版本的日期可以追溯到2009年,而旧的HTMLWorker
功能由于无法修复而被废弃了很多年。请查阅official HTML to PDF tutorial的简介,以概述使用iText将HTML转换为PDF的历史。