将 HTML 转换为图像(通过自动调整大小的 JEditorPane)
Posted
技术标签:
【中文标题】将 HTML 转换为图像(通过自动调整大小的 JEditorPane)【英文标题】:Converting HTML to image (via autosized JEditorPane) 【发布时间】:2020-06-17 20:28:11 【问题描述】:将 html 元素转换为图像(例如 PNG)的机制是通过 JEditorPane
“渲染”它,如下所示:
public void render(String html, int width, int height, file output)
JEditorPane jep = new JEditorPane("text/html", html);
jep.setSize(width, height);
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
jep.print(image.getGraphics());
ImageIO.write(image, "PNG", output);
这种方法适用于简单的 HTML 代码,包括对 CSS 的基本支持。
有没有办法“自动检测”宽度和高度,而不是在render()
方法中明确指定?
或者通过“普通香草”Java
将 HTML 转换为图像的更好方法?
【问题讨论】:
【参考方案1】:大多数 HTML 元素没有“默认”大小。大小由在该元素中找到的文本和显示该元素的屏幕宽度设置。
但是,如果您想以当前样式呈现在用户屏幕上的元素,您可能可以尝试获取根元素的宽度。
为此,尝试将 HTML 字符串转换为 DOM 元素 (Creating a new DOM element from an HTML string using built-in DOM methods or Prototype),然后获取根元素的宽度和高度。
【讨论】:
以上是关于将 HTML 转换为图像(通过自动调整大小的 JEditorPane)的主要内容,如果未能解决你的问题,请参考以下文章