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的格式输出,该怎么做?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论