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

xtupzzrd  于 2022-12-16  发布在  其他
关注(0)|答案(2)|浏览(142)

我想在文档中添加一个包含HTML的段落。
据我所知,iText只支持直接通过XMLWorkerHelper向文档添加HTML。
此外,我想改变字体的HTML,但这可以做一个css文件。
我的方法与下面的代码类似:

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

但是这个解决方案是直接写到文档中的。我想把HTML添加到一个段落中,所以我可能会给那个部分添加一些额外的格式。

ffdz8vbo

ffdz8vbo1#

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

bkhjykvo2#

请一步一步地解析HTML。在这个例子中,最后一个管道是PdfWriterPipeline,这不是你想要的(因为这个管道将内容写入文档)。你想用ElementHandlerPipeline替换这个最后的管道,将遇到的所有HTML标记转换为ElementList
一旦您有了Element示例的列表,您就可以决定如何处理它(将它们添加到Paragraph是一个选项)。

相关问题