解决FTPC 自带ireport对象调用打印机条码显示不全,反转,空白等问题

2 篇文章 0 订阅
2 篇文章 0 订阅

解决方案:
从Report 对象中提取JasperPrint 对象
调用JasperPrintManager的方法进行打印,可以使得打印显示正常
PS PDF打印机页弹出, 需要PDF默认打印机

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;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JerryLXu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值