Java 如何从servlet打印Jasper报告?
我正试图从web应用程序的servlet打印Jasper报告。下面是调用打印功能的代码Java 如何从servlet打印Jasper报告?,java,servlets,web,printing,jasper-reports,Java,Servlets,Web,Printing,Jasper Reports,我正试图从web应用程序的servlet打印Jasper报告。下面是调用打印功能的代码 //Print the report HashMap<String, Object> params = new HashMap<String, Object>(); params.put("companyName",userBean.getCompanyName().trim()); par
//Print the report
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("companyName",userBean.getCompanyName().trim());
params.put("companyPhone",userBean.getPhone().trim());
params.put("patientName",demographicsBean.get(0).getfName()+" "+demographicsBean.get(0).getmName()+" "+demographicsBean.get(0).getlName());
params.put("patientAge",String.valueOf(demographicsBean.get(0).getDob()));
params.put("address",demographicsBean.get(0).getAdrLine1()+" "+demographicsBean.get(0).getAdrLine2());
java.util.Date date = new java.util.Date();
params.put("date",String.valueOf(new Date(Calendar.getInstance().getTimeInMillis())));
params.put("doctorName",subUserBean.getFirstName()+" "+subUserBean.getLastName());
params.put("drugName",drug);
params.put("ptInstructions",ptInstructionsTxt);
params.put("quantity",request.getParameter("quantityTxt"));
params.put("refills",refilTxt);
Connection connection = DBMaster.getInstance().getConnection();
ReportConnector r = new ReportImpl();
r.printReport(getClass().getResourceAsStream("/ReportResources/Prescription2.jasper"), params,connection);
//打印报告
HashMap params=新的HashMap();
put(“companyName”,userBean.getCompanyName().trim());
put(“companyPhone”,userBean.getPhone().trim());
参数put(“patientName”,demographicsBean.get(0.getfName()+”+demographicsBean.get(0.getmName()+”+demographicsBean.get(0.getlName());
params.put(“patientAge”,String.valueOf(demographicsBean.get(0.getDob());
params.put(“地址”,demographicsBean.get(0.getAdrLine1()+“”+demographicsBean.get(0.getAdrLine2());
java.util.Date Date=新建java.util.Date();
params.put(“date”,String.valueOf(新日期(Calendar.getInstance().getTimeInMillis()));
put(“doctorName”,subUserBean.getFirstName()+“”+subUserBean.getLastName());
参数put(“药物名称”,药物);
参数put(“pInstructions”,pInstructionsTXT);
params.put(“数量”,request.getParameter(“quantityTxt”);
参数put(“重新填充”,重新填充文本);
连接连接=DBMaster.getInstance().getConnection();
ReportConnector r=新的ReportImpl();
r、 printReport(getClass().getResourceAsStream(“/ReportResources/Prescription2.jasper”),参数,连接);
下面是打印报告的代码
public void printReport(InputStream path, Map<String, Object> params, Connection con) throws JRException
{
JasperPrint jasperPrint = JasperFillManager.fillReport(path, params, con);
JasperPrintManager.printReport(jasperPrint, false);
}
public void打印报告(InputStream路径、映射参数、连接con)引发异常
{
JasperPrint JasperPrint=JasperFillManager.fillReport(路径、参数、con);
JasperPrintManager.printReport(jasperPrint,false);
}
问题是,尽管这在localhost中有效,但没有打印任何内容(我现在没有打印机,但是MS One Note
应该作为打印机打开。这在localhost中发生)
这里出了什么问题?尝试保留withPrintDialog标志,看看它是否显示了有用的内容。或者尝试使用JRPrintServiceExporter而不是JasperPrintManager。这里的示例只是为了说明问题-您是否知道此代码将在服务器端打印报告-而不是在客户端(浏览器端)?@defectus:我没有,但后来我打印了。如何在客户端打印此文件?通常,我会让Jasper生成一个PDF文件,并将其作为“内容类型”
application/PDF
发送到浏览器。可以在此处找到一个示例: