Tôi đang tìm cách tải một trang và lưu kết xuất dưới dạng hình ảnh giống như bạn làm với CutyCapt (QT + webkit EXE để thực hiện điều đó).JavaFX 2.0+ WebView/WebEngine hiển thị trang web thành hình ảnh
Tại thời điểm hiện tại và không có JavaFX, tôi làm điều đó bằng cách gọi một quá trình bên ngoài từ java và render nộp hơn tải tập tin đó vào một ImageBuffer ... Cả rất tối ưu hóa cũng không thực tế và thậm chí nền tảng ít chéo ...
Sử dụng JavaFX2 + tôi đã cố gắng chơi với WebView & 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;
}
}
có một phương pháp phản đối: renderToImage
trong Scene
(xem liên kết bên dưới) mà có thể làm một cái gì đó mà đến gần và với mà tôi muốn có thể có thể để làm việc nhưng nó không được chấp nhận ... Nó không được chấp nhận trong JavaFX dường như có nghĩa là không có javadoc quảng cáo phương pháp thay thế và bởi vì tôi không có quyền truy cập vào mã, tôi không thể xem nó được thực hiện như thế nào ...
Dưới đây là một vài trang web nơi tôi tìm thấy một số thông tin nhưng không có gì để làm cho một trang web để một hình ảnh:
http://tornorbye.blogspot.com/2010/02/how-to-render-javafx-node-into-image.html
canvasImage
và saveImage(canvasImage, fc.getSelectedFile())
từ này:
http://javafx.com/samples/EffectsPlayground/src/Main.fx.html
khác:
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/
Tôi muốn sử dụng 'print' hoặc' printAll' trên 'paint', nhưng ý tưởng cơ bản là WAY cool! – MadProgrammer
FXBrowser là gì? – Pablo