Java中JasperReport指定打印机打印指定内容

本文介绍如何在Java项目中使用JasperReport进行指定打印机打印,并动态设置打印份数。通过Maven引入必要依赖,加载.jasper模板,设置打印参数,实现定制化打印需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

使用Java代码实现JasperReport指定某个打印机实现打印,及动态设置打印份数设置,Maven项目,在网上的资料很少,有各种坑,本文中使用的TIBCO Jaspersoft Studio-6.8.0软件编译的.jasper文件,如何使用此软件请自行百度

步骤

1、直接上代码,在pox.xml文件中引入所需依赖包

<!-- jasperreports start-->
        <dependency>
            <groupId>org.olap4j</groupId>
            <artifactId>olap4j</artifactId>
            <version>1.2.0</version>
        </dependency>
        <dependency>
            <groupId>net.sf.jasperreports</groupId>
            <artifactId>jasperreports</artifactId>
            <version>6.3.1</version>
        </dependency>
        <dependency>
            <groupId>net.sf.jasperreports</groupId>
            <artifactId>jasperreports-fonts</artifactId>
            <version>4.0.0</version>
        </dependency>
        <dependency>
            <groupId>net.sf.barcode4j</groupId>
            <artifactId>barcode4j</artifactId>
            <version>2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>batik-anim</artifactId>
            <version>1.8</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>batik-awt-util</artifactId>
            <version>1.8</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>batik-bridge</artifactId>
            <version>1.8</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>batik-css</artifactId>
            <version>1.8</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>batik-dom</artifactId>
            <version>1.8</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>batik-gvt</artifactId>
            <version>1.8</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>batik-svg-dom</artifactId>
            <version>1.8</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>batik-svggen</artifactId>
            <version>1.8</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>batik-util</artifactId>
            <version>1.8</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>xmlgraphics-commons</artifactId>
            <version>2.1</version>
        </dependency>
        <dependency>
            <groupId>com.lowagie</groupId>
            <artifactId>itext</artifactId>
            <version>2.1.7</version>
        </dependency>
        <!-- jasperreports end-->

2、加载JasperReport模板

HashMap<String, Object> map = new HashMap<>();
map.put("TEST","TEST");
//加载模板,第一个字符串是jasper文件的地址
JasperPrint jasperPrint= JasperFillManager.fillReport("C:\Users\dhy\Desktop\test.jasper", map,new JREmptyDataSource());

3、设置指定打印机和打印份数,实现打印

//设置指定打印机地址,printer是自己设置的参数,表示打印机地址
PrintService[] pss = PrinterJob.lookupPrintServices();
PrintService ps = null;
for (int i = 0; i < pss.length; i++) {
     if (pss[i].getName().equalsIgnoreCase(printer)) {
        ps = pss[i];
    }
}
JRAbstractExporter je = new JRPrintServiceExporter();
je.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
je.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE, ps);
je.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG, false);
je.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG, false);
//打印,copy是自己设置的参数,表示打印份数
for(int i=1;i<=copy;i++) {
      je.exportReport();
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值