在iText 5中格式化HTML有序列表编号

时间:2016-12-07 11:19:55

标签: html css pdf-generation itext xmlworker

我正在使用Java将HTML输入转换为使用iText5的PDF(com.itextpdf.tool xmlworker ver 5.5.10)。我有一个需要以特定字体显示的有序列表。我的问题是我无法更改列表编号的字体或大小以匹配列表项的内容。对于以下HTML,生成的PDF中的数字7. 8. 9.和10.不正确。如何更改数字的字体?

HTML输入:

<ol start="7">
  <li>seventh entry</li>
  <li>eight entry</li>
  <li>ninth entry</li>
<li>tenth entry</li>
</ol>

Java源代码:

private Paragraph htmlToPdf(String htmlStr) throws PdfException {
ElementList elements = new ElementList();

String fontTypeNormal = FontProvider.FontType.BRODTEXT_NORMAL.toString();  //"Frutiger LT Std"
String fontSizeNormal = "font-size: 11pt";

fontProvider.registerFont(FontProvider.FontType.BRODTEXT_NORMAL); //method in other class. using FontFactory.register(). This works.

String cssStr = "p {font-family: '" + fontTypeNormal + "'; " + fontSizeNormal + "} ul { list-style: disc; font-family: '" + fontTypeNormal
        + "'; } li { font-family: '" + fontTypeNormal + "'; " + fontSizeNormal + "} ol { font-family: '" + fontTypeNormal + "'; } ";


try {
    elements = XMLWorkerHelper.parseToElementList(htmlStr, cssStr);
} catch (IOException e) {
    logger.error("Failed to parse HTML...");
    e.printStackTrace();
}

Paragraph htmlParagraph = new Paragraph();

htmlParagraph.add(element);
}

return htmlParagraph;
}

以下是PDF部件无法正常工作的图片:PDF输出

enter image description here

0 个答案:

没有答案