jasperprint java_关于jasperreport对应java打印机的解决方案

本文档详细介绍了如何解决使用JasperReport 4.6版本在Java环境中进行打印遇到的问题,包括选择合适的JRE版本、处理依赖库、创建和签名jar包等步骤,以实现Web应用中的报表打印功能。
摘要由CSDN通过智能技术生成

对于jasperreport打印这个功能,遇到了一大堆问题,也只能一点一点解决我:

1.现在我用的是jasperreport.jar是4.6版本。

(1).因为网上查到:6.0以上版本已经不再支持java打印功能,只能支持页面打印。

(2).如过可以用浏览器打印,那这个打印问题已经解决了

(3).我不想再用5.6版本重新测试一遍了,因为官网给的jasperreport-apples.jar例子里面有很多问题,不想在是一遍

2.对于程序的需要,:

(1).最好在webapp(根目录)下新建一个applets(自命名)文件夹

(2).applets文件夹放入jre1.6.exe或以上版本,因为jasperreport-4.5是jre1.6写的

(3).从官网的jasperreport-4.6例子中,找到commons-collections.jar、commons-digester.jar、commons-logging.jar,和自己的log4j.jar、log4j-core.jar,放入applets

3.对于jasperreports-applet-4.6.0.jar,也放入applets,但是等到测试的时候,这个jar包里有很多问题,如果提示这个class找不到,就从jasperreoprt-4.6.jar中粘进去

创建jar包

(1).官网给的例子jasperreport-applets-4.6.jar解压后,复制default.jasperreports.properties、net,新建文件夹,粘进去

(2).将缺少的class从jasperreport-4.6.jar粘到你放的位置对应的位置

(3).ctrl+p命令,将default.jasperreports.properties、net生成一个jasperreport-applets-4.6.jar,放入applets

4.这是我把官网例子改了以后的代码

importnet.sf.jasperreports.engine.JasperPrint;importnet.sf.jasperreports.engine.JasperPrintManager;importnet.sf.jasperreports.engine.util.JRLoader;import javax.swing.*;importjava.io.PrintWriter;importjava.io.StringWriter;importjava.net.URL;/*** Created by 朱星翰 on 2017/9/14.*/

public class JRPrinterApplet extendsjavax.swing.JApplet {privateURL url;privateJasperPrint jasperPrint;publicJRPrinterApplet(){

}public voidinit() {

String strUrl= getParameter("REPORT_URL");if (strUrl != null) {try{

url= newURL(getCodeBase(), strUrl);

}catch(Exception e) {

StringWriter swriter= newStringWriter();

PrintWriter pwriter= newPrintWriter(swriter);

e.printStackTrace(pwriter);

JOptionPane.showMessageDialog(this, swriter.toString());

}

}else{

JOptionPane.showMessageDialog(this, "REPORT_URL:不能为空!");

}

}

@Overridepublic voidstart() {if (url != null) {if (jasperPrint == null) {try{

jasperPrint=(JasperPrint) JRLoader.loadObject(url);

}catch(Exception e) {

StringWriter swriter= newStringWriter();

PrintWriter pwriter= newPrintWriter(swriter);

e.printStackTrace(pwriter);

JOptionPane.showMessageDialog(this, swriter.toString());

}

}if (jasperPrint != null) {final JasperPrint print =jasperPrint;

Thread thread= new Thread(newRunnable()

{public voidrun()

{try{

JasperPrintManager.printReport(print,true);

}catch(Exception e) {

StringWriter swriter= newStringWriter();

PrintWriter pwriter= newPrintWriter(swriter);

e.printStackTrace(pwriter);

JOptionPane.showMessageDialog(null, swriter.toString());

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值