Java后台调用指定打印机

   1.[现有]帮助文档调默认打印机
        // 定义报表运行环境,才能执行报表      
        String envPath = onLinePoint;     
        FRContext.setCurrentEnv(new LocalEnv(envPath));      
        try {      
            TemplateWorkBook workbook = TemplateWorkBookIO.readTemplateWorkBook(FRContext.getCurrentEnv(), fileName+".cpt");      
            // 参数传值      
            Parameter[] parameters = workbook.getParameters();      
            HashMap<String, String> paraMap = new HashMap<String, String>();     
            paraMap.put(parameters[0].getName(), packCode);     

            // java中调用报表打印方法      
            boolean a = PrintUtils.printWorkBook(fileName+".cpt", paraMap, false);      
            if (a == false) {      
                System.out.println("失败啦!返回" + a);  
                this.returnData.toSuccess("打印封箱单失败!");
            } else {
                this.returnData.toSuccess("打印封箱单成功!");
                System.out.println("成功!返回" + a);      
            }      
        } catch (Exception e) {      
            e.printStackTrace();      
        }


    2.需求调用指定打印机 [PrintUtils]
      public static void print(PrintableSet printableset, boolean flag, String s)
        throws PrinterException
    {
        print(printableset, flag, s, 0);
    }

    public static void print(PrintableSet printableset, boolean flag, String s, int i)
        throws PrinterException
    {
        PrintService printservice = null;
        if(s != null)
        {
            PrintService aprintservice[] = PrintServiceLookup.lookupPrintServices(javax.print.DocFlavor.INPUT_STREAM.AUTOSENSE, null);
            int j = 0;
            do
            {
                if(j >= aprintservice.length)
                    break;
                if(s.equals(aprintservice[j].getName()))
                {
                    printservice = aprintservice[j];
                    break;
                }
                j++;
            } while(true);
        }
        if(printservice == null)
            printservice = PrintServiceLookup.lookupDefaultPrintService();
        PrinterJob printerjob = PrinterJob.getPrinterJob();
        if(printservice != null)
            printerjob.setPrintService(printservice);
        if(printableset.size() == 0)
        {
            return;
        } else
        {
            getPageablePrintBook(printerjob, printableset, printservice, flag, i);
            printerjob.print();
            return;
        }
    }
    3.问:上面方法是否能满足需求;
             参数中PrintableSet如何使用、String s 是否打印机名称;
             具体实现步骤。
















FineReportsmq 发布于 2017-6-14 16:08
回答问题
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
yets11发布于2017-6-14 17:22(编辑于 2023-9-6 09:34)
555
  • 0关注人数
  • 522浏览人数
  • 最后回答于:2017-6-14 17:22
    活动推荐 更多
    热门课程 更多
    返回顶部