Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r35483 -r35511 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 35483) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 35511) @@ -349,7 +349,7 @@ continue; } JRTemplatePrintText itemText = (JRTemplatePrintText)item; - if(StringUtils.isNotBlank(itemText.getText()) && StringTools.isNumber(itemText.getText())){ + if(StringUtils.isNotBlank(itemText.getFullText()) && StringTools.isNumber(itemText.getFullText())){ if(itemText.getWidth() == 66){//积分宽度改变的话,此处要跟着变。不然积分也会被设置右边距 itemText.getLineBox().setRightPadding(0); }else{ @@ -392,7 +392,7 @@ JRPrintElement jr = jRPrintElements.get(i); if(jr instanceof JRTemplatePrintText){ JRTemplatePrintText kItemText = (JRTemplatePrintText)jr; - if(StringUtils.isNotBlank(kItemText.getText()) && StringTools.isNumber(kItemText.getText())){ + if(StringUtils.isNotBlank(kItemText.getFullText()) && StringTools.isNumber(kItemText.getFullText())){ if("cssdWorkloadReportForTangshanWorkersHospital".equals(reportName) && kItemText.getWidth() == 60){ continue; } @@ -437,7 +437,7 @@ continue; } JRTemplatePrintText kItemText = (JRTemplatePrintText)kItem; - if(StringUtils.isNotBlank(kItemText.getText()) && StringTools.isNumber(kItemText.getText())){ + if(StringUtils.isNotBlank(kItemText.getFullText()) && StringTools.isNumber(kItemText.getFullText())){ if("supplyRoomQualityQuota".equals(reportName) && kItemText.getHeight() == 30){ continue;//供应室护理质量指标表 按天查询的列名不偏移 } Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/dwr/table/JasperreportsTableManager.java =================================================================== diff -u -r30242 -r35511 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/dwr/table/JasperreportsTableManager.java (.../JasperreportsTableManager.java) (revision 30242) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/dwr/table/JasperreportsTableManager.java (.../JasperreportsTableManager.java) (revision 35511) @@ -10,11 +10,11 @@ import org.apache.commons.lang3.StringUtils; import net.sf.jasperreports.engine.JRException; -import net.sf.jasperreports.engine.JRExporterParameter; import net.sf.jasperreports.engine.JasperPrint; -import net.sf.jasperreports.engine.export.JRHtmlExporter; -import net.sf.jasperreports.engine.export.JRHtmlExporterParameter; -import net.sf.jasperreports.j2ee.servlets.ImageServlet; +import net.sf.jasperreports.engine.export.HtmlExporter; +import net.sf.jasperreports.export.SimpleExporterInput; +import net.sf.jasperreports.export.SimpleHtmlExporterOutput; +import net.sf.jasperreports.export.SimpleHtmlReportConfiguration; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import com.forgon.disinfectsystem.entity.customform.formdefinition.FormDefinition; @@ -28,6 +28,7 @@ import com.forgon.systemsetting.model.HttpOption; import com.forgon.systemsetting.service.HttpOptionManager; import com.forgon.tools.string.StringTools; +import com.forgon.tools.util.FileUtils; /** * @author WangYi @@ -71,36 +72,30 @@ public List getReportFileContent(boolean printAll, HttpServletRequest request) { if(request != null){ HttpSession session = request.getSession(); - - // int pageIndex = 0; if (session.getAttribute("pageIndex") != null) { pageIndex = Integer.parseInt(session.getAttribute("pageIndex").toString()); } String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort() + request.getContextPath(); - - String attributeName = ImageServlet.DEFAULT_JASPER_PRINT_SESSION_ATTRIBUTE; - JasperPrint jasperPrint = (JasperPrint)session.getAttribute(attributeName); - JRHtmlExporter exporter = new JRHtmlExporter(); + JasperPrint jasperPrint = (JasperPrint)session.getAttribute("JasperPrint"); + HtmlExporter exporter = new HtmlExporter(); + exporter.setExporterInput(new SimpleExporterInput(jasperPrint)); + SimpleHtmlReportConfiguration reportExportConfiguration = new SimpleHtmlReportConfiguration(); + reportExportConfiguration.setWhitePageBackground(Boolean.TRUE); + reportExportConfiguration.setRemoveEmptySpaceBetweenRows(Boolean.TRUE); + reportExportConfiguration.setIgnorePageMargins(Boolean.TRUE); + exporter.setConfiguration(reportExportConfiguration); + String path = request.getContextPath()+"test.html"; + exporter.setExporterOutput(new SimpleHtmlExporterOutput(path)); int pageSize = jasperPrint.getPages().size(); - List pageCodeArray = new ArrayList(); - - if (printAll) { //打印全部 for (int i = 0; i < pageSize; i++) {//遍历打印页 - StringBuffer sbuffer = new StringBuffer(); - exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); - exporter.setParameter(JRExporterParameter.OUTPUT_STRING_BUFFER, sbuffer); -// exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "../servlets/image?image="); - exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, basePath+"/servlets/image?image="); - exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML, ""); - exporter.setParameter(JRExporterParameter.PAGE_INDEX, new Integer(i)); + reportExportConfiguration.setPageIndex(i); try { exporter.exportReport(); - String printContent = sbuffer.toString(); + String printContent = FileUtils.readAllContentAsStringBuffer(path, "UTF-8").toString(); if(i == (pageSize-1)){//处理最后一页table无底线(因为表格数据不够,用图片代替时,图片将table的底线遮住了,现将图片去掉) -// String regex = "\"\""; String regex = "\"\""; printContent = StringTools.replaceLast(printContent, regex, ""); } @@ -110,23 +105,15 @@ } } } else { //打印当前页 - StringBuffer sbuffer = new StringBuffer(); - exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); - exporter.setParameter(JRExporterParameter.OUTPUT_STRING_BUFFER, sbuffer); -// exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, "../servlets/image?image="); - exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, basePath+"/servlets/image?image="); - exporter.setParameter(JRHtmlExporterParameter.BETWEEN_PAGES_HTML, ""); - exporter.setParameter(JRExporterParameter.PAGE_INDEX, new Integer(pageIndex)); - try { + try { + reportExportConfiguration.setPageIndex(pageIndex); exporter.exportReport(); - String printContent = sbuffer.toString(); + String printContent = FileUtils.readAllContentAsStringBuffer(path, "UTF-8").toString(); if(pageIndex == (pageSize-1)){ //处理最后一页table无底线(因为表格数据不够,用图片代替时,图片将table的底线遮住了,现将图片去掉) -// String regex = "\"\""; String regex = "\"\""; printContent = StringTools.replaceLast(printContent, regex, ""); } - pageCodeArray.add(printContent); } catch (JRException e) { e.printStackTrace();