java - 如何在 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 文件具有导入脚本的事实有关。
解决方案
推荐阅读
- angular - Karma - NullInjectorError:没有 HttpClient 的提供者
- python-3.x - 在机器之间迁移谷歌生成的 API 令牌
- flutter - 初始化时空字符串列表显示为空
- java - 将背景图像加载到 JFrame 中的 JPanel 时出错
- r - R切割功能 - 分成错误的组
- android - 转换后获取 LiveData 对象的更好方法是什么?
- php - 有很多返回空值 laravel
- python - 带有多个字典的 Json URL 试图将键、值提取到数据框
- javascript - 如果每个单元格都是子组件,如何获取行索引?
- javascript - 生产模式问题(Rails 5.2.4.1 + VueJS + Webpack 3.12 + Heroku)