我有一个项目要求呈现HTML并捕获渲染的图像作为一个无头的CentOS 5.4服务器上的文件。我的具体要求是:

1)输入将是一个URL的网页呈现(或文件:// URL到本地HTML文件),输出将是包含在网页结果的渲染图像的图像文件  2)CSS必须由渲染最多可以支持到CSS 1级点击  3)在页面中的静态图像必须适当地显示所呈现的图像中,包括在.GIF或.PNG任何透明彩色文件,点击  4)必须能够在无头的CentOS 5.4服务器上运行。结果  5)溶液必须不依赖于任何产品或组分,其不是免费的商业用途

我不需要做任何事情比让屏幕捕获其他的页面,并将其保存为图像。困难的部分,似乎在一具无头环境中这样做。一些,我已经看到所讨论的需要的显示,以便工作的解决方案。

任何建议?

在预先感谢 吉姆

解: 我结束了使用的标准部件工具包库(www.eclipse.org/swt)为其嵌入式浏览器的功能。这让我以编程方式打开一个窗口,在其浏览器中的控制,渲染页面,然后捕获窗口的图像文件(通常是PNG)的内容。唯一的缺点这种方法不能回避的是一个“忽悠”时,必须以做屏幕捕获变得可见了一会儿窗户。我可以忍受。剩下的只是代码,以初始化获得系统资源的SWT对象,侦听器来检查页面加载成功完成,有些代码清理挂起连接(当页面加载无法完成无论何种原因)。

我有一个队友在CentOS Linux的xvfb的(X虚拟帧缓存)来播放周围。最初的测试似乎工作,所以它看起来像从下面的海报(谁说尝试xvfb的)的建议可能是我的问题的无头服务器部分可行的解决方案。

有帮助吗?

解决方案

可以使用xvfb的启动虚拟X-Windows环境。您现在可以开始定期的浏览器渲染页面,并使用抓屏工具来捕获窗口的内容。它是不是很漂亮,但straghtforward做。

WebKit是开源和嵌入的,也许你可以使用这个在一个小本机应用程序呈现在画布上,并将其保存到磁盘?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top