import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.print.PrinterJob;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.web.HTMLEditor;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class SimplePrint extends Application {
final String HTML = "
Behold my glory for I rule the Web
";
public void start(final Stage primaryStage) {
final StackPane root = new StackPane();
final Circle circle = new Circle(100);
circle.setFill(Color.RED);
circle.setStroke(Color.GREEN);
final WebView browser = new WebView();
// browser.getEngine().load("file:c:/Users/Peter/work/fx/scratch/html/canvas.html");
// browser.getEngine().load("file:c:/Users/Peter/work/fx/ws/JavaFX.png");
browser.getEngine().loadContent(HTML);
final HTMLEditor editor = new HTMLEditor();
editor.setHtmlText(HTML);
final Button btnPrint = new Button();
btnPrint.setText("Print web content");
btnPrint.setOnAction(new EventHandler() {
@Override
public void handle(ActionEvent event) {
PrinterJob job = PrinterJob.createPrinterJob();
System.out.println("PrinterJob: " + job);
boolean ready = job.showPrintDialog(primaryStage);
if (ready) {
job.printPage(editor);
// job.printPage(browser);
job.endJob();
}
System.out.println("Done: " + ready);
}
});
VBox b = new VBox();
b.setPadding(new Insets(30));
b.setSpacing(40);
b.setAlignment(Pos.CENTER);
b.getChildren().addAll(btnPrint);
root.getChildren().add(b);
Scene scene = new Scene(root, 300, 450);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}