2013-04-29 72 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(); 
     } 
    } 
}