2010-05-29 47 views

回答

0

你不能轻易做到(可能根本无法做到)。 每个页面只是一个文本 - html数据。您想要制作图像的视图是渲染页面。浏览器使用像HTML解析,JavaScript解析,CSS解析,字体渲染等技术吨呈现页面。要制作谷歌页面的屏幕截图 - 你需要做的所有渲染在内存中的某个地方,然后截图呈现页。

这个任务几乎是不可能的(没有什么是完全不可能的)。 如果你真的渴望捐出大量的时间来完成这个任务 - 你应该这样做: 1)找到一些开源渲染引擎。 Firefox会做。 2)找到一些方法来在ruby-on-rails和那个引擎之间进行通信。 3)将它们连接在一起并查看结果。

但是,我看到步骤1和2几乎不可能。

1

在纯Ruby中难以做到,因此您需要为此使用外部服务。例如,Browsershots这样做,看起来他们有一个api,尽管我自己并没有使用它。也许别人可以用另类但类似的服务加入。

您还希望readup on delayed_job或类似的东西,以确保您访问这些页面图像作为后台任务,并且它不会干扰您的实际应用程序。

7

有一个名为CutyCapt的命令行实用程序,它使用WebKit-Rendering引擎将HTML页面呈现为各种图像格式。也许这是给你的? http://cutycapt.sourceforge.net/

+0

时髦的! Janak,你仍然想用它作为后台任务,但我认为这可能比外部服务更适合你。 – PreciousBodilyFluids 2010-05-29 09:03:57

相关问题