需要知道如何用Java编码打印机名称

需要知道如何用Java编码打印机名称,java,printing,jasper-reports,Java,Printing,Jasper Reports,我用jasper report用Java创建了一个报告,大多数时候我都试图用代码设置打印机名称,但我做不到。请帮助我如何在不使用打印管理器的情况下指定要打印的打印机名称 try { String comname = ""; comname = "Stars Bombay Sweet (Pvt) Ltd."; JRTableModelDataSource dts = new JRTableModelDataSource(jTable1.getMod

我用jasper report用Java创建了一个报告,大多数时候我都试图用代码设置打印机名称,但我做不到。请帮助我如何在不使用打印管理器的情况下指定要打印的打印机名称

try {
        String comname = "";
        comname = "Stars Bombay Sweet (Pvt) Ltd.";

        JRTableModelDataSource dts = new JRTableModelDataSource(jTable1.getModel());
        String path = "D:\\Aster Soft\\Stars Reports\\posh_print\\report1.jrxml";
        Map<String, Object> params = new HashMap<String, Object>();

        params.put("name", comname);

        params.put("para1", InvNo.getText());
        params.put("para2", dat);
        params.put("para3", Customer.getText());
        params.put("credit", jComboBox1.getSelectedItem());

        params.put("Qty", GrossQty.getText());
        params.put("TotAmont", TotalAmount.getText());
        params.put("Discount", Discount.getText());
        params.put("GrossAmont", DisAmount.getText());

        JasperReport report = JasperCompileManager.compileReport(path);
        JasperPrint print = JasperFillManager.fillReport(report, params, dts);
        JasperViewer.viewReport(print, false);
        JasperPrintManager.printReport(print, true);
    } catch (Exception e) {
        e.printStackTrace();
    }
我想下面的博客链接会对你有所帮助

        JasperPrint print = JasperFillManager.fillReport(this.class.getResource("/classpath/yourReport.jasper").getPath(),
            new HashMap(), new yourReportDataSource());
        PrinterJob job = PrinterJob.getPrinterJob();
        /* Create an array of PrintServices */
        PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
        int selectedService = 0;
        /* Scan found services to see if anyone suits our needs */
        for(int i = 0; i &lt; services.length;i++){
        if(services[i].getName().toUpperCase().contains("Your printer's name")){
        /*If the service is named as what we are querying we select it */
         selectedService = i;
         }
        }
        job.setPrintService(services[selectedService]);