问题
javafx.print。
PrinterJob
只打印节点及其子类。
Image
不是Node的子类。所以您必须将它包装在一个节点(ImageView)中,或者从普通Java打印出来。
JavaFX PrinterJob与AWT PrinterJob的区别
主要的区别在于,JavaFX PrinterJob是为与节点对象一起使用而引入的。它将一些有用的东西设置为JavaFX属性,比如Jobstatus或打印机本身。而且它比旧的AWT PrinterJob更安全。AWT PrinterJob可以打印大部分您想要的内容,比如字符串、图像、弧等,因为它需要AWT图形对象来在页面上绘制内容。
解决方案
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import javafx.application.Application;
import javafx.embed.swing.SwingFXUtils;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.image.Image;
import javafx.sc