반응형
안녕하세요.
이번 포스팅에서는 예전에 작성했던 Jasper Reports를 Spring Boot에 설정하는 방법에 대한 글입니다.
참고) 필자 개발 환경
- Spring Boot 2.5.4
- Jasper Reports 6.19.0
Setting 방법
1. pom.xml
아래의 Dependency들을 추가한다.
<dependencies>
...
<!-- Jasper Library -->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.19.0</version>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-functions</artifactId>
<version>6.19.0</version>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
<version>6.0.0</version>
</dependency>
...
<dependencies>
2. java
Jasper Report를 띄우는 예제 소스는 아래와 같다.
@RequestMapping("/jasperTest.do")
public ResponseEntity<byte[]> jasperTest(HttpServletRequest request, HttpServletResponse response) throws Exception {
String path = "src/main/webapp/WEB-INF/jasper/test/"; // 경로 위치
String fileName = "test.jrxml"; // 파일 이름
// EmptyDataSource 이용 시
JREmptyDataSource dataSource_1 = new JREmptyDataSource(); // Datasource(DB에서 가져올지, 객체에서 가져올지, 안가져올지)
// DB에서 사용자 리스트를 조회한 결과를 dtoList에 넣는다.
List<Test> dtoList = testService.selectUserList();
// JRBeanDataSource 이용 (Dto List를 보고서에 직접 넣어주는 방식)
JRDataSource datasource_2 = new JRBeanCollectionDataSource(dtoList);
// 파라미터 설정(예시)
Map<String, Object> parameters = new HashMap<>();
JasperPrint jasperPrint = null;
HttpHeaders headers = new HttpHeaders();
try {
// 보고서에 파라미터를 직접 넣어줄 수도 있다.
parameters.put("Param1", "value_1");
// 여기서는 datasource_2(JRBeanDataSource 방식)을 이용
jasperPrint = JasperFillManager.fillReport(JasperCompileManager.compileReport(path + fileName), parameters, datasource_2);
// JasperExportManager.exportReportToPdfFile(jasperPrint, path + "\\test2.pdf"); // PDF 파일을 생성해서 서버에 저장하는 구문 주석처리
headers.setContentType(MediaType.APPLICATION_PDF); // PDF 형식으로 출력
//headers.setContentDispositionFormData("filename", "test.pdf"); // 이 구문을 추가하면 pdf 파일이 실행되는 것이 아닌 파일로 저장된다.
} catch(Exception e) {
e.printStackTrace();
}
return new ResponseEntity<byte[]>
(JasperExportManager.exportReportToPdf(jasperPrint), headers, HttpStatus.OK);
}
참고사항
1) 한글도 보고서에 출력되길 원한다면, 한글 폰트 설정도 진행해야 한다. (https://ajdahrdl.tistory.com/67)
2) jdbc 설정은 Spring Boot에 jdbc 설정을 해두면 추후에, DB통신 방식을 이용할 경우 설정해둔 jdbc 정보들로 DB 통신이 된다.
반응형
'BE > Spring' 카테고리의 다른 글
[Spring Boot] 이메일 전송하는 방법 (0) | 2022.05.16 |
---|---|
[Spring Boot] MongoDB 통신 설정 (0) | 2022.05.14 |
[Spring Boot] LogBack 설정 (0) | 2022.05.11 |
[Spring] Bean & IoC Container (0) | 2022.03.28 |
[Spring] DI & IOC (0) | 2022.03.27 |