java 虚拟打印机_打印作业提交给打印机,使用虚拟打印机但不是真正的打印机 . Java的...

我是java新手,在java中遇到打印服务问题 . 我正在尝试用Java创建一个桌面应用程序,它安装在系统中,调用api,返回结果并打印 .

仅当我们从api获得结果时才调用打印服务 . 所以我的问题是,当我在我的Windows机器上尝试这个应用程序时,它完全按照我想要的方式使用虚拟打印机,当我将它作为默认打印机时,但是对于我的真实打印机不起作用,即使它是默认的打印机 .

我们是否需要添加一些配置或端口号才能在真正的打印机中工作?这是源代码

try {

HttpEntity entity = orderRes.getEntity();

if (entity != null){

//String retSrc = EntityUtils.toString(entity, "UTF-8");

byte[] byteSRC = Base64.decodeBase64(EntityUtils.toByteArray(entity));

DocFlavor flavor = DocFlavor.BYTE_ARRAY.AUTOSENSE;

PrintService service = PrintServiceLookup.lookupDefaultPrintService();

System.out.println(service);

DocPrintJob printJob = service.createPrintJob();

printJob.addPrintJobListener(new ClientApiPrintTask.JobCompleteMonitor());

if(byteSRC != null) {

Doc doc = new SimpleDoc(byteSRC, flavor, null);

printJob.print(doc, null);

Thread.sleep(3000);

}

}

//System.out.println("Exiting app");

} catch (PrintException ex) {

Logger.getLogger(ClientApiPrintTask.class.getName()).log(Level.SEVERE, null, ex);

} catch (InterruptedException ex) {

Logger.getLogger(ClientApiPrintTask.class.getName()).log(Level.SEVERE, null, ex);

} finally {

res.close();

}

我添加了一个打印作业监听器来查找问题,我可以找到的是调用PrintJobEvent printDataTransferCompleted 和 printJobNoMoreEvents 但不是 printJobCompleted 或 printJobFailed . 我正在使用 JDK version 1.7.0_65 进行开发 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值