首页 > 解决方案 > 如何在 Java 中将呈现的 HTML 转换为某种图像文件(PDF、JPG、PNG)?

问题描述

我有一段 HTML 代码本质上呈现图形,我想将该呈现的图形转换为图像文件。我到处寻找解决方案,但它们要么不起作用(即转换为空白图像),要么只适用于 XHTML 文件。我不确定将 HTML 存储在字符串中并使用它是否更可行,或者使用 HTML 文件本身,或者什么。

这是 HTML:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Upside Analysis</title>
    <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
</head>
<body>
    <div id='target' ></div>
        <script>
        var target_target = document.getElementById('target');
        var layout = {
    title: 'Upside Analysis',
    titlefont: {
    family: 'arial',
    size: 24,
    color: 'black'
}
,
    height: 282,
    width: 500,
    xaxis: {
    title: 'Market Rents',
    },



};

var trace0 =
{
x: ['1 Bedroom','2 Bedroom','3 Bedroom'],
y: [2550.0, 3250.0, 4000.0],
orientation: 'v',
type: 'bar',
name: '',
};

        var data = [ trace0];
Plotly.newPlot(target_target, data, layout);    </script>

</body>
</html>

我试着把它通过 Html2ImageGenerator:

String uri = new File("testoutput/output.html").toURI().toString();
HtmlImageGenerator imageGenerator = new HtmlImageGenerator();
imageGenerator.loadUrl(uri);
imageGenerator.getBufferedImage();
imageGenerator.saveAsImage("output.png");
imageGenerator.saveAsHtmlWithMap("hello-world.html", "output.png");

它所做的只是生成一个空白的 .png 文件,映射的 .html 文件也为空白。我认为这与 HTML 文件具有导入脚本的事实有关。

标签: javahtmlpdfpngjpeg

解决方案


推荐阅读