我正在開發一個JavaFX項目,其中有一堆靜態HTML & JS頁面,我正在加載用戶可以檢出並點擊鏈接等的index.html
。JavaFX:爲WebEngine/Webview設置默認打印機
現在,通常當我們使用類似Firefox
或Chromium
的瀏覽器時,調用print命令將執行打印任務。
這是不是發生在webview
發生的同樣的事情。如何在JavaFX的網頁渲染機制中啓用打印。
還有一種方法可以調用打印函數並將它傳遞給JavaScript的網頁或web視圖。
這裏是我到目前爲止的代碼:
public class Main extends Application {
private Scene scene;
MyBrowser myBrowser;
@Override
public void start(Stage primaryStage) throws Exception{
primaryStage.setTitle("Test web");
Screen screen = Screen.getPrimary();
myBrowser = new MyBrowser();
scene = new Scene(myBrowser, 1080, 1920);
myBrowser.setPrefSize(1080, 1920);
Rectangle2D bounds = screen.getVisualBounds();
primaryStage.setX(bounds.getMinX());
primaryStage.setY(bounds.getMinY());
scene.setRoot(myBrowser);
primaryStage.setScene(scene);
primaryStage.setMaximized(false);
primaryStage.setFullScreen(true);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
class MyBrowser extends Region {
final String hellohtml = "hello.html";
WebView webView = new WebView();
WebEngine webEngine = webView.getEngine();
public MyBrowser(){
URL urlHello = getClass().getResource("hello.html");
webEngine.load(urlHello.toExternalForm());
webView.setPrefSize(1080, 1920);
webView.getChildrenUnmodifiable().addListener(new ListChangeListener<Node>() {
@Override public void onChanged(Change<? extends Node> change) {
Set<Node> deadSeaScrolls = webView.lookupAll(".scroll-bar");
for (Node scroll : deadSeaScrolls) {
scroll.setVisible(true);
}
}
});
getChildren().add(webView);
}
}
任何建議或指針將是很好。謝謝。:-)
到這裏看看:https://carlfx.wordpress.com/2013/07/15/introduction-by-example-javafx-8-printing/ – hotzst
@hotzst:該應用程序是全屏顯示,而且我不能添加額外的按鈕。還有一種方法可以調用打印功能並將它傳遞給JavaScript中的網頁或web視圖。 –
@hotzst:有什麼想法? –