使用javafx从webview获取打印
我正在尝试使用JavaFX在web视图中打开HTML文件。现在我想打印使用javafx从webview获取打印,java,printing,webview,javafx-2,Java,Printing,Webview,Javafx 2,我正在尝试使用JavaFX在web视图中打开HTML文件。现在我想打印WebView内容 这是我的密码: Group group= new Group(); Scene scene= new Scene(group); fxpanel.setScene(scene); WebEngine eng; WebView webview = new WebView (); group.getChildren().add(webview); webview.setMinSize(740,430); w
WebView
内容
这是我的密码:
Group group= new Group();
Scene scene= new Scene(group);
fxpanel.setScene(scene);
WebEngine eng;
WebView webview = new WebView ();
group.getChildren().add(webview);
webview.setMinSize(740,430);
webview.setMaxSize(740,430);
webview.setVisible(true);
eng= webview.getEngine();
try
{
eng.load(new File("path of the htmlfile").toURI().toURL().toString());
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null,"exception") ;}
}
打印WebView将作为Java8的一项功能添加 您可以下载将实现该功能的 Java8将于明年3月发布
功能跟踪器:
旁注:
在发布的代码中,您在同一个线程上混合了JavaFX和Swing代码。通常,您不应该这样做=>请参阅。您可以使用JavaFX 8打印作业和打印机API打印任何JavaFX场景图节点 以下是该帖子的链接:
神奇之处在于这个函数:它将您的webview打印到默认打印机
public void print(final Node node) {
Printer printer = Printer.getDefaultPrinter();
PageLayout pageLayout = printer.createPageLayout(Paper.NA_LETTER, PageOrientation.PORTRAIT, Printer.MarginType.DEFAULT);
double scaleX = pageLayout.getPrintableWidth() / node.getBoundsInParent().getWidth();
double scaleY = pageLayout.getPrintableHeight() / node.getBoundsInParent().getHeight();
node.getTransforms().add(new Scale(scaleX, scaleY));
PrinterJob job = PrinterJob.createPrinterJob();
if (job != null) {
boolean success = job.printPage(node);
if (success) {
job.endJob();
}
}
}