Java调用打印机打印标签纸,但是没有2*4这个格式,原因是为什么?就算设置了2*4也一样打印出4*6的格式。

public class Print {
public static void print1() {
//JFileChooser fileChooser = new JFileChooser(); // 创建打印作业
//int state = fileChooser.showOpenDialog(null);
//if (state == fileChooser.APPROVE_OPTION) {
File file = new File("D:/标签.jpeg"); // 获取选择的文件
// 构建打印请求属性集
HashPrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
// 设置打印格式,因为未确定类型,所以选择autosense
DocFlavor flavor = DocFlavor.INPUT_STREAM.PNG;
// 查找所有的可用的打印服务
PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);
// 定位默认的打印服务
PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();
// 显示打印对话框
PrintService service = ServiceUI.printDialog(null, 100, 100, printService, defaultService, flavor, pras);
Media[] objs = (Media[]) service.getSupportedAttributeValues(Media.class, null, null);
if (service != null && objs!=null) {
try {
DocPrintJob job = service.createPrintJob(); // 创建打印作业
FileInputStream fis = new FileInputStream(file); // 构造待打印的文件流
DocAttributeSet das = new HashDocAttributeSet();
Doc doc = new SimpleDoc(fis, flavor, das);
job.print(doc, pras);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
图片说明

https://blog.csdn.net/scholar_man/article/details/78784163