2013-04-29 119 views
4

我想在使用JavaFX的web视图中打开HTML文件。现在我想打印WebView的内容。从webview使用javafx打印

这里是我的代码:

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") ;} 
} 

回答

2

您可以使用JavaFX 8 PrintJob和Printer API来打印任何JavaFX场景图节点。

这里的链接的帖子:
http://carlfx.wordpress.com/2013/07/15/introduction-by-example-javafx-8-printing/

的奇妙之处在于这个功能:它需要你的网页流量,并打印出到默认打印机

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(); 
     } 
    } 
}