init
This commit is contained in:
36
studio/common/common-jasperreport/pom.xml
Normal file
36
studio/common/common-jasperreport/pom.xml
Normal file
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>common</artifactId>
|
||||
<groupId>com.platform</groupId>
|
||||
<version>0.4.x</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<version>0.4.x</version>
|
||||
<artifactId>common-jasperreport</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>net.sf.jasperreports</groupId>
|
||||
<artifactId>jasperreports</artifactId>
|
||||
<version>${jasperreports.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>com.lowagie</groupId>
|
||||
<artifactId>itext</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.lowagie</groupId>
|
||||
<artifactId>itext</artifactId>
|
||||
<version>2.1.7</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@@ -0,0 +1,126 @@
|
||||
package cn.datax.common.jasperreport.utils;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.sf.jasperreports.engine.*;
|
||||
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
|
||||
import net.sf.jasperreports.engine.export.HtmlExporter;
|
||||
import net.sf.jasperreports.export.HtmlExporterOutput;
|
||||
import net.sf.jasperreports.export.SimpleExporterInput;
|
||||
import net.sf.jasperreports.export.SimpleHtmlExporterOutput;
|
||||
import net.sf.jasperreports.export.SimpleHtmlReportConfiguration;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.File;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
public class JasperReportUtil {
|
||||
|
||||
final static String jasperDir = "jaspers";
|
||||
|
||||
public static String getJasperFileDir(String fileName) {
|
||||
return jasperDir + File.separator + fileName + ".jasper";
|
||||
}
|
||||
|
||||
private static String getContentType(ReportType type) {
|
||||
String contentType;
|
||||
switch (type) {
|
||||
case HTML:
|
||||
contentType = "text/html;charset=utf-8";
|
||||
break;
|
||||
case PDF:
|
||||
contentType = "application/pdf";
|
||||
break;
|
||||
case XLS:
|
||||
contentType = "application/vnd.ms-excel";
|
||||
break;
|
||||
case XLSX:
|
||||
contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
||||
break;
|
||||
case XML:
|
||||
contentType = "text/xml";
|
||||
break;
|
||||
case RTF:
|
||||
contentType = "application/rtf";
|
||||
break;
|
||||
case CSV:
|
||||
contentType = "text/plain";
|
||||
break;
|
||||
case DOC:
|
||||
contentType = "application/msword";
|
||||
break;
|
||||
default:
|
||||
contentType = "text/html;charset=utf-8";
|
||||
}
|
||||
return contentType;
|
||||
}
|
||||
|
||||
static JasperPrint getJasperPrint(InputStream jasperStream, Map parameters, List<?> list) throws JRException {
|
||||
JRDataSource dataSource;
|
||||
if (null == list || list.size() == 0) {
|
||||
dataSource = new JREmptyDataSource();
|
||||
} else {
|
||||
dataSource = new JRBeanCollectionDataSource(list);
|
||||
}
|
||||
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperStream, parameters, dataSource);
|
||||
return jasperPrint;
|
||||
}
|
||||
|
||||
public static void exportToPdf(String jasperPath, Map parameters, List<?> list, HttpServletResponse response) throws Exception {
|
||||
OutputStream outputStream = response.getOutputStream();
|
||||
try {
|
||||
ClassPathResource resource = new ClassPathResource(jasperPath);
|
||||
response.setContentType(getContentType(ReportType.PDF));
|
||||
InputStream jasperStream = resource.getInputStream();
|
||||
JasperPrint jasperPrint = getJasperPrint(jasperStream, parameters, list);
|
||||
JasperExportManager.exportReportToPdfStream(jasperPrint, outputStream);
|
||||
} catch (Exception e) {
|
||||
log.error("读取报表异常", e);
|
||||
outputStream.write("读取报表异常".getBytes());
|
||||
} finally {
|
||||
outputStream.flush();
|
||||
outputStream.close();
|
||||
}
|
||||
}
|
||||
|
||||
public static void exportToHtml(String jasperPath, Map parameters, List<?> list, HttpServletResponse response) throws Exception {
|
||||
response.setHeader("Content-type", "text/html;charset=utf-8");
|
||||
response.setCharacterEncoding("utf-8");
|
||||
response.setContentType(getContentType(ReportType.HTML));
|
||||
PrintWriter out = response.getWriter();
|
||||
HtmlExporter exporter = new HtmlExporter();
|
||||
try {
|
||||
ClassPathResource resource = new ClassPathResource(jasperPath);
|
||||
InputStream jasperStream = resource.getInputStream();
|
||||
JasperPrint jasperPrint = getJasperPrint(jasperStream, parameters, list);
|
||||
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
|
||||
SimpleHtmlReportConfiguration configuration = new SimpleHtmlReportConfiguration();
|
||||
exporter.setConfiguration(configuration);
|
||||
HtmlExporterOutput outPut = new SimpleHtmlExporterOutput(out);
|
||||
exporter.setExporterOutput(outPut);
|
||||
exporter.exportReport();
|
||||
} catch (Exception e) {
|
||||
log.error("读取报表异常", e);
|
||||
out.write("读取报表异常");
|
||||
} finally {
|
||||
out.flush();
|
||||
out.close();
|
||||
}
|
||||
}
|
||||
|
||||
public enum ReportType {
|
||||
HTML,
|
||||
PDF,
|
||||
XLS,
|
||||
XLSX,
|
||||
XML,
|
||||
RTF,
|
||||
CSV,
|
||||
DOC
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
|
||||
net.sf.jasperreports.extension.simple.font.families.dejavu=jaspers/fonts/fonts.xml
|
||||
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<fontFamilies>
|
||||
<fontFamily name="微软雅黑">
|
||||
<normal>jaspers/fonts/msyh.ttf</normal>
|
||||
<bold>jaspers/fonts/msyh.ttf</bold>
|
||||
<italic>jaspers/fonts/msyh.ttf</italic>
|
||||
<boldItalic>jaspers/fonts/msyh.ttf</boldItalic>
|
||||
<pdfEncoding>Identity-H</pdfEncoding>
|
||||
<pdfEmbedded>true</pdfEmbedded>
|
||||
<exportFonts>
|
||||
<export key="net.sf.jasperreports.html">'微软雅黑', Arial, Helvetica, sans-serif</export>
|
||||
<export key="net.sf.jasperreports.xhtml">'微软雅黑', Arial, Helvetica, sans-serif</export>
|
||||
</exportFonts>
|
||||
</fontFamily>
|
||||
</fontFamilies>
|
||||
Binary file not shown.
Reference in New Issue
Block a user