2010-05-29 43 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

相關問題