2

我想在文档中添加一个包含 HTML 的段落。
据我所知,iText 只支持直接通过 XMLWorkerHelper 将 HTML 添加到文档中。

此外,我想更改 HTML 的字体,但这可以通过 css 文件来完成。

我的方法类似于此代码:

XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
worker.parseXHtml(pdfWriter, document, fis);

但是这个解决方案是直接写入文档。我想将 HTML 添加到段落中,因此我可能会为该部分添加一些额外的格式。

4

2 回答 2

2
String html = "<p>Html code here</p>";
 Paragraph comb = new Paragraph();

StringBuilder sb = new StringBuilder();
sb.append(html);

ElementList list = XMLWorkerHelper.parseToElementList(sb.toString(), null);
for (Element element : list) {
    comb.add(element);
}

para = new Paragraph(comb);
cell = new PdfPCell(para);
cell.setHorizontalAlignment(Element.ALIGN_LEFT);
cell.setBorder(Rectangle.NO_BORDER);
cell.setPaddingTop(0);
cell.setPaddingBottom(15f);
cell.setLeading(3f, 1.2f);

table.addCell(cell);
于 2015-07-23T02:34:48.477 回答
1

转到逐步解析HTML。在该示例中,最终管道PdfWriterPipeline不是您想要的(因为此管道将内容写入文档)。您想用ElementHandlerPipeline替换这个最终管道,将遇到的所有 HTML 标记转换为ElementList

一旦你有了这个Element实例列表,你就可以决定如何处理它(将它们添加到 aParagraph是一种选择)。

于 2013-05-22T07:13:02.520 回答