【问题标题】:Converting HTML to image (via autosized JEditorPane)将 HTML 转换为图像(通过自动调整大小的 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 转换为图像的更好方法?

【问题讨论】:

    标签: java html image swing jeditorpane


    【解决方案1】:

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

    但是,如果您想以当前样式呈现在用户屏幕上的元素,您可能可以尝试获取根元素的宽度。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      • 2013-07-04
      • 2012-12-18
      • 1970-01-01
      • 2020-12-27
      相关资源
      最近更新 更多