public String getRpxHtml(String rpxName,HttpServletRequest request) { /* *启动项目已经加载授权 */ //计算报表,目前得从类路径下,主要是解决springboot打jar包找不到rpx文件问题。 打jar包,在缓存失效的情况下,很可能计算会报错(原因根据我的测试,与reportServlet不支持从类路径读有关,目前研发不处理)。建议打war包发布 Context cxt = null; ClassPathResource rpxPath = new ClassPathResource("reportFiles/"+rpxName); String rpxHtmlStr = ""; cxt = new Context(); try { //bean方式 //ReportDefine rd = (ReportDefine)ReportUtils.read("C:\\Users\\admin\\Desktop\\springTest1\\src\\main\\resources\\reportFiles\\test.rpx"); ReportDefine rd = (ReportDefine) ReportUtils.read(rpxPath.getInputStream()); request.setAttribute("rDefine", rd); //返回报表计算生成的html串儿,可分页。导出打印等的js函数也都生成在页面了,可以调用js函数。 如果是跨系统调(如iframe嵌入),涉及到js跨域,自行解决即可。 HtmlTagApi api = new HtmlTagApi(); //bean方式,必须设定srcType,file方式可省略可指定 api.setBeanName("rDefine"); api.setSrcType("defineBean"); //file方式 //api.setSrcType("file"); //api.setReportFileName("C:\\Users\\admin\\Desktop\\springTest1\\src\\main\\resources\\reportFiles\\test.rpx"); api.setName("report1"); api.setGenerateWaterMark("Hyl test!!!"); api.setNeedSaveAsExcel("yes"); rpxHtmlStr = api.getTagOutput(request,request.getServletContext()); } catch (Throwable e) { e.printStackTrace(); } return rpxHtmlStr; }