Per una soluzione pure-java in grado di supportare il rendering simultaneo, è possibile utilizzare un browser Java4/CSS2 java, ad esempio Cobra, che fornisce un componente Swing per la GUI. Quando si crea un'istanza di questo componente, si può chiamare è il metodo paint (Graphics g) per disegnare se stesso in un'immagine off-screen
E.g.
Component c = ...; // the browser component
BufferedImage bi = new BufferedImage(c.getWidth(), c.getHeight(), TYPE_INT_RGB)
Graphics2d g = bi.createGraphics();
c.paint(g);
È quindi possibile utilizzare l'API Java immagine per salvare questo come un JPG.
JPEGImageEncoder encoder = JPEGCodec.createEncoder(new FileOutputStream("screen.jpg"));
enncoder.encode(bi); // encode the buffered image
I browser basati su Java sono generalmente scarsi rispetto ai browser nativi stabiliti. Tuttavia, poiché il tuo obiettivo sono le immagini statiche e non un browser interattivo, un browser basato su Java potrebbe essere più che adeguato a questo riguardo.
Si noti che questo non funziona sui server [headless] (http://java.sun.com/javase/6/docs/api/java/awt/HeadlessException.html). – BalusC
@Balusc Yeap, in realtà l'ho eseguito come applicazione standalone. – OscarRyz