2013-05-07 41 views
0

我有一個使用struts2開發的應用程序。我的一個網頁上有一個div,用於顯示使用Google地圖API創建的世界地圖。在點擊一個按鈕時,我想將此地圖保存爲服務器位置上的圖像。我試過這個使用機器人類,但這不起作用。我的應用程序支持IE8。下面是我寫的代碼:Java代碼將網頁保存爲圖像

Dimension screenDim = Toolkit.getDefaultToolkit().getScreenSize(); 
Rectangle rect = new Rectangle(screenDim); 
Robot rob = new Robot(); 
BufferedImage img = rob.createScreenCapture(rect); 
String FileName="D:\\SP_Maps\\Map.png"; 
ImageIO.write(img, "png", new File(FileName)); 

基本上我試圖採取的一個按鍵,點擊該頁面的截屏並保存爲圖像。這在我的本地主機上正常工作,但是,當我在我的服務器上部署並嘗試獲取屏幕截圖時,我只是將黑色頁面保存爲png圖像。

+1

*「我該使用機器人類,但是這是行不通的嘗試。」 *告訴我們你的嘗試。你期望會發生什麼?反而發生了什麼? – 2013-05-07 10:01:24

+0

這裏是我使用的代碼「Dimension screenDim = Toolkit.getDefaultToolkit()。getScreenSize(); Rectangle rect = new Rectangle(screenDim); Robot rob = new Robot(); BufferedImage img = rob.createScreenCapture(rect); String FileName =「D:\\ Maps \\ Map.png」; ImageIO.write(img,「png」,new File(FileName));「在點擊按鈕時,我嘗試拍攝桌面的屏幕截圖並將其保存爲服務器計算機上的圖像。這在我的本地主機上正常工作,但是當我在服務器上部署相同時,它只是提供黑色頁面。 – Pri 2013-05-07 10:11:33

+0

@ user2134620你可以編輯你的問題,並將其置於格式中。 – A4L 2013-05-07 10:35:26

回答

0

當你正在開發,如果你有興趣,你可以使用JavaScript的Web應用程序..

爲了得到一個屏幕截圖,並與任何格式保存它,你可以使用PhantomJS

PhantomJS is a headless WebKit scriptable with a JavaScript API. It has fast 
and native support for various web standards: DOM handling, CSS selector, 
JSON, Canvas, and SVG. 

檢查這些例子寫有PhantomJS:

https://github.com/ariya/phantomjs/wiki/Examples

還要檢查這個教程Taking website screenshots using PhantomJS

本教程是關於採取網絡鏡頭並將其保存爲JPEG,PNG,PDF ...等

希望這有助於你...

0

你能清楚地說明你的使用情況?如果我理解正確,您有一個Web應用程序,它具有在用戶操作時捕獲屏幕的功能?理想情況下,Java Robot實用程序應該用於執行Java應用程序的自動測試。根據文檔

Robot的主要目的是促進 Java平臺實現的自動化測試。

也許你可以嘗試使用phantomjs。 例如

var page = require('webpage').create(); 
page.open('http://google.com', function() { 
    page.render('google.png'); 
    phantom.exit(); 
}); 

https://github.com/ariya/phantomjs/wiki/Quick-Start

執行用戶操作,如點擊按鈕,就可以使用casper.js http://casperjs.org/quickstart.html