我有一个 xhtml 文档,我正在使用 Flyingsaucer 将其转换为 PDF。 xhtml 有几个标签,其中内嵌有 base64 编码的图像。 xhtml 的源是动态的,因此图像标签的结构可能会有所不同。这是标签的示例:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAagAAAEuCAYAAADbW4YFAAAgAElEQVR4Aex9CYBdRZ ...
当我在浏览器中查看 html 时,图像显示正确,但是,img 元素不会在最终的 PDF 中呈现。以下是我如何渲染它以创建 PDF。
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(builder.parse(source), "");
renderer.layout();
renderer.createPDF(response.getOutputStream(),true);
谁能告诉我应该采取什么方法来实现这一目标?我看见这个帖子 https://stackoverflow.com/questions/10316607/render-image-from-servlet-in-flyingsaucer-generated-pdf,但是,我正在使用内联图像,因此我看不到如何使用 Edd 的解决方案来完成此任务。
提前致谢
是的,您可以使用此处给出的方法:在 Flyingsaucer 生成的 pdf 中渲染来自 servlet 的图像 https://stackoverflow.com/questions/10316607/render-image-from-servlet-in-flyingsaucer-generated-pdf
埃德有:
InputStream input = null;
try {
input = ...;
byte[] bytes = IOUtils.toByteArray(input);
Image image = Image.getInstance(bytes);
在 Edd 的例子中,图像来自远程源(他用input = ...;
)。在您的情况下,您只想从 Base64 编码数据中读取它(base64,
。首先使用一个Base64解码器 https://stackoverflow.com/questions/469695/decode-base64-data-in-java获取二进制数据,放入byte[]
或 Stream,然后您可以使用Java图像IO http://docs.oracle.com/javase/6/docs/api/javax/imageio/package-summary.html从您的字节创建图像并按照 Edd 的方法将图像转换为 PDF。在这里向 Edd 表示敬意(肯定投票!)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)