渲染HTML(带有javascript)和转换为图像

我有一个包含
Javascript代码的HTML页面.它需要首先渲染才能转换为图像.

我知道像wkhtmltoimage,PhantomJS,khtmltopng,webkit2png,PrinceXML和html2image这样的项目.我已经实现了其中的一些,但我试图找到一个纯Java解决方案,不必使用Process来执行命令.任何帮助都会很棒,谢谢!

编辑:我调查了Cobra,但似乎JS支持仍然在dev中,并且它不能正确解析我的html文件.

或者,如果还有其他方法,请告诉我.我只是想找到最好的解决方案.

最佳答案 没有纯Java解决方案 – 没有人用Java编写支持HTML 5的浏览器.

我会尝试以下两种方法之一:

>使用env.js rhino模拟可以运行JavaScript的浏览器.例如,这应该为您提供一个可以使用FlyingSaucer渲染的DOM.
>将SWT添加到类路径(加上平台的二进制文件).它包含一个浏览器组件,它使用系统的浏览器到render URLs or an HTML string.

您可能需要SWTBot以无头模式运行浏览器.

如果这不起作用并且你在Linux上,那么你可以启动一个内存中的X服务器Xvfb来打开你的浏览器.或者,您可以使用vncserver在服务器上启动桌面.

[编辑] project phantomjs可能会做你想要的:

PhantomJS (www.phantomjs.org) is a headless WebKit scriptable with JavaScript or CoffeeScript.
[…]
Use cases: Headless web testing, Site scraping, Page rendering
Multiplatform, available on major operating systems: Windows, Mac OS X, Linux, other Unices
Fast and native implementation of web standards: DOM, CSS, JavaScript, Canvas, SVG. No emulation!
Pure headless (X11) on Linux, ideal for continuous integration systems. Also runs on Amazon EC2.

quickstart page解释了如何加载网页并将其渲染为图像.

点赞