Resuelva el problema de visualización incompleta, inversa, en blanco y otros problemas del código de barras de la impresora de llamada de objeto de informe incorporado de FTPC

Solución:
extraiga el objeto JasperPrint del objeto Informe
y llame al método de JasperPrintManager para imprimir, lo que puede hacer que la impresión se muestre normal y
aparezca la página de la impresora PS PDF, que requiere la impresora PDF predeterminada

public static void printReport(Report var1) throws JRException {
    
    
//            JasperPrintManager.printReport(jasperPrint, false);
        ReportInfo reportInfo = var1.getReportInfo();
        JasperPrint internalRepresentation = (JasperPrint) reportInfo.getInternalRepresentation();
//        internalRepresentation.setPageWidth(283);
//        internalRepresentation.setPageHeight(85);
        boolean b = JasperPrintManager.printReport(internalRepresentation, false);
        javax.print.PrintService ps = getPrintService("Urovo D7120");

        JRAbstractExporter je = new JRPrintServiceExporter();
//        PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet();
//        printRequestAttributeSet.add(MediaSizeName.ISO_A4);
//        SimplePrintServiceExporterConfiguration configuration = new SimplePrintServiceExporterConfiguration();
//        configuration.setPrintRequestAttributeSet(printRequestAttributeSet);
//        je.setExporterInput(new SimpleExporterInput(jasperPrint));
        je.setParameter(JRExporterParameter.JASPER_PRINT, internalRepresentation);
//            //设置指定打印机
        je.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE, ps);
        je.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG, false);
        je.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG, false);
        //打印
        je.exportReport();
    }
  private static javax.print.PrintService getPrintService(String printName) {
    
    
        PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
        //1份
//        pras.add(new Copies(1));

        DocFlavor flavor = DocFlavor.BYTE_ARRAY.PNG;
//        DocFlavor flavor = DocFlavor.STRING.TEXT_HTML;
//
        //可用的打印机列表(字符串数组)
        javax.print.PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras);

        if (printService != null) {
    
    
            for (javax.print.PrintService p : printService) {
    
    
//                System.out.println("printname="+p.getName());
                if (p.getName().equals(printName)) {
    
    

                    return p;
                }
            }
        }
        return null;
    }

Supongo que te gusta

Origin blog.csdn.net/oXiaoWeiWuDi/article/details/126443020
Recomendado
Clasificación