将HTML转换为PDF并将其添加到段落中

时间:2013-05-21 11:59:07

标签: java html pdf pdf-generation itext

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

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

我的方法与此代码类似:

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

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

2 个答案:

答案 0 :(得分:1)

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

获得此Element个实例列表后,由您自行决定如何处理它(将它们添加到Paragraph是一个选项)。

答案 1 :(得分:1)

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);