java代码调用打印机没反应

以下是我的代码:

public static void main(String[] args) {
        JFileChooser fileChooser = new JFileChooser("F://"); // 创建打印作业
        int state = fileChooser.showOpenDialog(null);
        if (state == fileChooser.APPROVE_OPTION) {
    
            
            File file = fileChooser.getSelectedFile(); // 获取选择的文件
            // 构建打印请求属性集
            HashPrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
            // 设置打印格式,因为未确定类型,所以选择autosense
            DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE;
            // 查找所有的可用的打印服务
            PrintService printService[] = PrintServiceLookup
                    .lookupPrintServices(flavor, pras);
            System.out.println(printService.length);
            // 定位默认的打印服务
            PrintService defaultService = PrintServiceLookup
                    .lookupDefaultPrintService();
            // 显示打印对话框
            PrintService service = ServiceUI.printDialog(null, 200, 200,
                    printService, defaultService, flavor, pras);
            if (service != null) {
                try {
                    DocPrintJob job = service.createPrintJob(); // 创建打印作业
                    FileInputStream fis = new FileInputStream(file); // 构造待打印的文件流
                    System.out.println(file.getName());
                    
                    DocAttributeSet das = new HashDocAttributeSet();
                    Doc doc = new SimpleDoc(fis, flavor, das);
                    System.out.println(doc.getAttributes());
                     try {
                            job.print(doc, pras); // 进行每一页的具体打印操作
                        } catch (PrintException pe) {
                            pe.printStackTrace();
                        }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        } else {
            // 如果打印内容为空时,提示用户打印将取消
            JOptionPane.showConfirmDialog(null,
                    "Sorry, Printer Job is Empty, Print Cancelled!",
                    "Empty", JOptionPane.DEFAULT_OPTION,
                    JOptionPane.WARNING_MESSAGE);
        }
        
    }

有弹出文件选择框,但是打印机没有反应了,正常情况下,我在PDF打开文件里选择打印,最终会出来一个xps文件保存的框,但是代码调用的时候没反应?有没有大侠告知下什么问题?
————————————————————————————————————————————
上面的问题解决了,是我选择格式没写具体,现在的问题是我要把输出的文件以PDF的格式输出,该怎么做?

阅读 4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题