converting webpage into jpeg image using java

ravi picture ravi · Apr 30, 2010 · Viewed 7.3k times · Source

I am building a web application, in Java, where i want the whole screenshot of the webpage, if i give the URL of the webpage as input.

The basic idea i have is to capture the display buffer of the rendering component..I have no idea of how to do it.. plz help..

Answer

OscarRyz picture OscarRyz · Apr 30, 2010

There's a little trick I used for this app:

count down demo app http://img580.imageshack.us/img580/742/capturadepantalla201004wd.png Java application featuring blog.stackoverflow.com page ( click on image to see the demo video )

The problem is you need to have a machine devoted to this.

So, the trick is quite easy.

  • Create an application that takes as argument the URL you want to fetch.

  • Then open it with Desktop.open( url ) that will trigger the current webbrowser.

  • And finally take the screenshot with java.awt.Robot and save it to diks.

Something like:

 class WebScreenShot {
     public static void main( String [] args ) {
         Desktop.getDesktop().open( args[0] );
         Robot robot = new Robot();
         Image image = robot.createScreenCapture( getScreenResolutionSize() );
         saveToDisk( image );
     }
  }

This solution is far from perfect, because it needs the whole OS, but if you can have a VM devoted to this app, you can craw the web and take screenshots of it quite easy.

The problem of having this app as a non-intrusive app is that up to this date, there is not a good html engine renderer for Java.