如何在rails应用程序中将网页另存为图像?

时间:2010-05-29 07:40:30

标签: html ruby-on-rails ruby

在我的rails应用程序中,我需要保存一些网页并将其作为图像显示给用户。例如,如何将www.google.com保存为图像?

4 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:1)

在纯Ruby中非常难以做到,因此您需要为此使用外部服务。例如,Browsershots会这样做,看起来他们有一个api,虽然我自己没有使用它。也许其他人可以使用替代但类似的服务。

您还希望在delayed_job或类似内容上read up,以确保您将这些页面图像作为后台任务访问,并且它不会干扰您的实际应用程序

答案 2 :(得分:0)

你不能轻易做到(可能完全不能这样做)。 每个页面只是一个文本 - HTML数据。要制作图像的视图是渲染页面。浏览器使用大量的技术来渲染页面,如html解析,javascript解析,css解析,字体渲染等。要制作google页面的屏幕截图 - 你需要在内存中的所有位置进行渲染,然后拍摄渲染的截图页。

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

但是,我认为步骤1和2几乎不可能。

答案 3 :(得分:0)