2015-04-23 70 views
0

我有一個ArrayList與許多SplitPanes。 我喜歡將每個SplitPane打印到新頁面。 它不起作用。我想在新頁面上打印許多SpliPanes,每個SplitPane。

@FXML 
private void handlePrint(ActionEvent event) { 
    for (Object split : listSplitPanes) { 
     printModul.print((Node) split); 
    } 


public void print(final Node node) { 
    Printer printer = Printer.getDefaultPrinter(); 
    PageLayout pageLayout = printer.createPageLayout(Paper.A4, 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) { 
     if (job.showPrintDialog(primaryStage.getOwner())) { 
      boolean success = job.printPage(pageLayout, node); 
      if (success) { 
       job.endJob(); 
      } 
     } 
    } 
} 

沒有錯誤。它打印出第一個完美的SplitPane,相互之間有空白頁面。

有人有想法嗎?

謝謝 格哈德LAIB

回答

-1

@Gerhard LAIB 你的工作已經完成,布爾成功是真實的,能使印刷job.endJob 的最後,我會嘗試寫一些測試來打印保持其他節點活着打印作業。抱歉沒有代碼,因爲我正在嘗試使用GridPane打印多個頁面而沒有太大的運氣。誰曾經爲JavaFX寫過教程我想從未想過打印和桌面應用程序