使用ITextRenderer图像不是PDF格式

时间:2018-05-18 12:41:43

标签: java html xslt itext

我试图将我的html内容转换为PDF。我的html文档中有一些文本和图像(PNG)。使用iTextRenderer进行转换后,只有图像不是PDF格式的,其余的文本内容都是正确的。打印我的html内容(使用Sysout)图像标记正确,但不以PDF格式显示。

请在下面找到我的java代码。

ITextRenderer renderer = new ITextRenderer();
Document resultDoc = (Document) result.getNode();
renderer.setDocument(resultDoc, "");
renderer.layout();


ByteArrayOutputStream baos = new ByteArrayOutputStream();
renderer.createPDF(baos);
baos.close();
return Base64.getEncoder().encodeToString(baos.toByteArray());

1 个答案:

答案 0 :(得分:1)

我已通过更改依赖项修复了此问题。之前我使用的是以下依赖项,而不是将图像解析为PDF文件。

<!-- https://mvnrepository.com/artifact/org.xhtmlrenderer/core-renderer -->
    <dependency>
    <groupId>org.xhtmlrenderer</groupId>
    <artifactId>core-renderer</artifactId> 
    <version>R8pre2</version>
    </dependency> 

然后我用以下依赖项替换它,它工作正常。无需更改代码。

  <!-- https://mvnrepository.com/artifact/org.xhtmlrenderer/flying-saucer-pdf-itext5 -->
    <dependency>
        <groupId>org.xhtmlrenderer</groupId>
        <artifactId>flying-saucer-pdf-itext5</artifactId>
        <version>9.1.13</version>
    </dependency>