Estoy buscando una forma de cargar una página y guardar el renderizado como una imagen como lo haría con CutyCapt (QT + webkit EXE para hacer eso)JavaFX 2.0+ WebView/WebEngine rinde página web a una imagen
Por el momento, y sin JavaFX, lo hago llamando a un proceso externo de Java y de la representación a presentar de cargar ese archivo en un ImageBuffer ... Ni muy optimizado ni práctico e incluso plataforma cruzada de menos ...
Usando JavaFX2 + I intentado jugar con la vista Web & WebEngine:
public class WebComponentTrial extends Application {
private Scene scene;
@Override
public void start(final Stage primaryStage) throws Exception {
primaryStage.setTitle("Web View");
final Browser browser = new Browser();
scene = new Scene(browser, 1180, 800, Color.web("#666970"));
primaryStage.setScene(scene);
scene.getStylesheets().add("webviewsample/BrowserToolbar.css");
primaryStage.show();
}
public static void main(final String[] args) {
launch(args);
}
}
class Browser extends Region {
static { // use system proxy settings when standalone application
// System.setProperty("java.net.useSystemProxies", "true");
}
final WebView browser = new WebView();
final WebEngine webEngine = browser.getEngine();
public Browser() {
getStyleClass().add("browser");
webEngine.load("http://www.google.com/");
getChildren().add(browser);
}
@Override
protected void layoutChildren() {
final double w = getWidth();
final double h = getHeight();
layoutInArea(browser, 0, 0, w, h, 0, HPos.CENTER, VPos.CENTER);
}
@Override
protected double computePrefWidth(final double height) {
return 800;
}
@Override
protected double computePrefHeight(final double width) {
return 600;
}
}
hay un método en desuso: renderToImage
en Scene
(ver enlaces más abajo) que hacer algo que se acerca y con el que me podría ser capaz para trabajar, pero está en desuso ... Ser desaprobado en JavaFX parece significar que no hay ningún anuncio javadoc el método de reemplazo y porque no tengo acceso al código, no puedo ver cómo se hizo ...
Aquí hay un par de sitios donde me encontré con algo de información, pero nada para hacer una página web a una imagen:
http://tornorbye.blogspot.com/2010/02/how-to-render-javafx-node-into-image.html
canvasImage
y saveImage(canvasImage, fc.getSelectedFile())
de éste:
http://javafx.com/samples/EffectsPlayground/src/Main.fx.html
Otros:
http://download.oracle.com/javafx/2.0/webview/jfxpub-webview.htm
http://download.oracle.com/javafx/2.0/get_started/jfxpub-get_started.htm
http://fxexperience.com/2011/05/maps-in-javafx-2-0/
Usaría 'print' o' printAll' sobre 'paint', pero la idea básica es WAY cool! – MadProgrammer
¿Qué es FXBrowser? – Pablo