//package com.oracle.javafx;

import java.util.Set;
import javafx.application.Application;
import javafx.print.PrintResolution;
import javafx.print.PrinterJob;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

public class PrintTest extends Application { 

    public static void print(final Node node) { 
        PrinterJob job = PrinterJob.createPrinterJob(); 
        if (job != null) { 
            final Set<PrintResolution> supportedPrintResolutions = job.getPrinter().getPrinterAttributes().getSupportedPrintResolutions(); 
            for (PrintResolution supportedPrintResolution : supportedPrintResolutions) { 
                job.getJobSettings().setPrintResolution(supportedPrintResolution); 
            } 
                boolean success = job.printPage(node); 
                if (success) { 
                    job.endJob(); 
                } 
        } 
    } 

    @Override 
    public void start(Stage primaryStage) throws Exception { 
        Button print = new Button("Print"); 
        HBox hBox = new HBox(print); 
        print.setOnAction(event -> PrintTest.print(hBox)); 
        primaryStage.setScene(new Scene(hBox)); 
        primaryStage.show(); 
    } 
    public static void main(String[] args) {
        launch(args);
    }
} 