将HTML转换为图像(通过自动调整大小的JEditorPane)

问题描述 投票:0回答:1

将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转换为图像的更好方法?

java html image converters jeditorpane
1个回答
1
投票

大多数HTML元素没有“默认”大小。大小由在此元素中找到的文本以及显示该元素的屏幕的宽度设置。

但是,如果要使用在用户屏幕上显示的当前样式来渲染元素,则​​可以尝试获取根元素的宽度。

为此,请尝试将HTML字符串转换为DOM元素(Creating a new DOM element from an HTML string using built-in DOM methods or Prototype),然后获取根元素的宽度和高度。

© www.soinside.com 2019 - 2024. All rights reserved.