有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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

我的方法与此代码类似:

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

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


共 (2) 个答案

  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);
    
  2. # 2 楼答案

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

    一旦您有了这个Element实例列表,您就可以决定如何处理它(将它们添加到Paragraph是一个选项)