使用JavaFX 8打印阶段

时间:2014-04-01 14:16:09

标签: javafx javafx-2 javafx-8

我找到了一些如何使用JavaFX打印网页的基本示例,但我正在寻找可以打印带有应用内容的完整场景的示例。有什么例子吗?

1 个答案:

答案 0 :(得分:2)

您可以使用

将场景转换为图像
WritableImage snapshot = scene.snapshot(null);

这将返回一个WritableImage,它可以转换为Image File或BufferedImage,并使用JavaFX8的Printing API进行打印(没有很多可用的示例,但是新的API与旧的非常相似打印API,所以不会有问题)

将WritableImage转换为Png文件

WritableImage snapshot = scene.snapshot(null);
File file = new File("image.png");
try {
    ImageIO.write(SwingFXUtils.fromFXImage(snapshot, null), "png", file);
} catch (IOException e) {
    e.printStackTrace();
}

将WritableImage转换为BufferedImage (用于打印)

WritableImage snapshot = scene.snapshot(null);
BufferedImage bufferedImage = SwingFXUtils.fromFXImage(snapshot, null);

关于如何使用java打印图像的一个小例子,请通过

Proper way of printing a BufferedImage in Java

How to print image in java