Java Jasper报告在客户端打印,不生成报告
我在我的项目中使用struts和jasper报表,现在我遇到了一个问题,即每当我尝试打印报表时,服务器机器上就会出现打印机对话框,我希望它在客户端,而不以任何格式导出报表。我尝试了以下代码标签,它对我来说工作正常 步骤1: 在基本Jsp中(report.Jsp) 输入type=“hidden”name=“contextPath”value=”“id=“contextPath”/> 步骤2: 关于includesed js(report.js) 步骤3 在struts-config.xml文件上Java Jasper报告在客户端打印,不生成报告,java,Java,我在我的项目中使用struts和jasper报表,现在我遇到了一个问题,即每当我尝试打印报表时,服务器机器上就会出现打印机对话框,我希望它在客户端,而不以任何格式导出报表。我尝试了以下代码标签,它对我来说工作正常 步骤1: 在基本Jsp中(report.Jsp) 输入type=“hidden”name=“contextPath”value=”“id=“contextPath”/> 步骤2: 关于includesed js(report.js) 步骤3 在struts-config.xml文件上
<action path="/generateRecptReport" scope="request" parameter="method" type="com.cm.actions.ReceiptMakerProcessAction">
</action>
**步骤4
关于操作(Java代码)(ReceiptMakerProcessAction.Java)
公共ActionForward generateRecptReport(ActionMapping映射、ActionForm表单、HttpServletRequest请求、HttpServletResponse响应)引发异常
{
logger.info(“在generateRecptReport中”);
字符串p_company_logo=getServlet().getServletContext().getRealPath(“/”+“reports/logo.bmp”;
字符串reportPath=“/reports/MSSQLREPORTS/”;
String reportName=“receiptMemoReport”;
ReportsDAO reportdao=(ReportsDAO)daoimpinstancefactory.getdaoimpinstance(ReportsDAO.IDENTITY);
info(“实现类:+reportdao.getClass());
reportName=reportdao.getReceiptReportName();
if(CommonFunction.checkNull(reportName).trim().equalsIgnoreCase(“”)
reportName=“receiptMemoReport”;
Connection connectDatabase=ConnectionDAO.getConnection();
Map hashMap=新hashMap();
hashMap.put(“p_公司标志”,p_公司标志);
put(“IS_IGNORE_PAGINATION”,true);
尝试
{
InputStream reportStream=getServlet().getServletConfig().getServletContext().getResourceAsStream(reportPath+reportName+“.jasper”);
JasperPrint JasperPrint=null;
PrintWriter out=response.getWriter();
out.追加(“”);
out.追加(“”);
response.setContentType(“text/html”);
字符串htmlReportFileName=reportName+“.html”;
JRHtmlExporter=新的JRHtmlExporter();
request.getSession().setAttribute(ImageServlet.DEFAULT\u JASPER\u PRINT\u SESSION\u属性,jasperPrint);
exporter.setParameter(JRHtmlExporterParameter.OUTPUT\u WRITER,out);
exporter.setParameter(jreporterParameter.JASPER_PRINT,jasperPrint);
exporter.setParameter(JRHtmlExporterParameter.IS_使用_-IMAGES_-TO_-ALIGN,Boolean.FALSE);
exporter.setParameter(JRHtmlExporterParameter.IGNORE_PAGE_MARGINS,Boolean.TRUE);
exporter.setParameter(JRHtmlExporterParameter.IS_WHITE_PAGE_BACKGROUND,Boolean.FALSE);
setParameter(JRHtmlExporterParameter.IS_REMOVE_EMPTY_SPACE_in_ROWS,Boolean.TRUE);
exporter.setParameter(JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR,Boolean.TRUE);
exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML,“”);
exporter.setParameter(jreporterParameter.OUTPUT_WRITER,response.getWriter());
浮球f1=1.2f;
exporter.setParameter(JRHtmlExporterParameter.ZOOM_比率,f1);
出口商。出口报告();
}
捕获(例外e)
{
e、 printStackTrace();
}
最后
{
ConnectionDAO.closeConnection(connectDatabase,null);
clear();
}
返回null;
}
希望这将有助于Jasper报告在客户端打印而不生成报告
<action path="/generateRecptReport" scope="request" parameter="method" type="com.cm.actions.ReceiptMakerProcessAction">
</action>
public ActionForward generateRecptReport(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) throws Exception
{
logger.info("In generateRecptReport");
String p_company_logo=getServlet().getServletContext().getRealPath("/")+"reports/logo.bmp";
String reportPath="/reports/MSSQLREPORTS/";
String reportName="receiptMemoReport";
ReportsDAO reportdao = (ReportsDAO)DaoImplInstanceFactory.getDaoImplInstance(ReportsDAO.IDENTITY);
logger.info("Implementation class: "+reportdao.getClass());
reportName=reportdao.getReceiptReportName();
if(CommonFunction.checkNull(reportName).trim().equalsIgnoreCase(""))
reportName="receiptMemoReport";
Connection connectDatabase = ConnectionDAO.getConnection();
Map<Object,Object> hashMap = new HashMap<Object,Object>();
hashMap.put("p_company_logo",p_company_logo);
hashMap.put("IS_IGNORE_PAGINATION",true);
try
{
InputStream reportStream = getServlet().getServletConfig().getServletContext().getResourceAsStream(reportPath+reportName+".jasper");
JasperPrint jasperPrint = null;
PrintWriter out=response.getWriter();
out.append("<head><script type='text/javascript' src='"+request.getContextPath()+"/js/report/report.js'></script></head>");
out.append("<body onLoad='self.print();self.close()'></body>");
response.setContentType("text/html");
String htmlReportFileName=reportName+".html";
JRHtmlExporter exporter = new JRHtmlExporter();
request.getSession().setAttribute(ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE,jasperPrint);
exporter.setParameter(JRHtmlExporterParameter.OUTPUT_WRITER, out);
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN ,Boolean.FALSE);
exporter.setParameter(JRHtmlExporterParameter.IGNORE_PAGE_MARGINS ,Boolean.TRUE);
exporter.setParameter(JRHtmlExporterParameter.IS_WHITE_PAGE_BACKGROUND,Boolean.FALSE);
exporter.setParameter(JRHtmlExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,Boolean.TRUE);
exporter.setParameter(JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR, Boolean.TRUE);
exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML,"");
exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, response.getWriter());
float f1=1.2f;
exporter.setParameter(JRHtmlExporterParameter.ZOOM_RATIO ,f1);
exporter.exportReport();
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
ConnectionDAO.closeConnection(connectDatabase, null);
hashMap.clear();
}
return null;
}