我正在开发一个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:有什么想法? –