Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提交到打印机的打印作业,使用虚拟打印机,但不使用真实打印机。JAVA_Java_Printing - Fatal编程技术网

提交到打印机的打印作业,使用虚拟打印机,但不使用真实打印机。JAVA

提交到打印机的打印作业,使用虚拟打印机,但不使用真实打印机。JAVA,java,printing,Java,Printing,我是java新手,java中的打印服务有问题。我正在尝试用Java创建一个桌面应用程序,它安装在系统中,调用api,获取结果并打印 只有当我们从api获得结果时,才会调用打印服务。所以我的问题是,当我在我的windows机器上尝试这个应用程序时,当我将虚拟打印机设置为默认打印机时,它完全按照我希望的方式工作,但即使它设置为默认打印机,它也不能与我的真实打印机一起工作 我们是否需要添加一些配置或端口号才能在真正的打印机中工作?这是源代码 try { HttpEntity entity =

我是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 1.7.0_65版进行开发