JasperReports 문서 원본 보기
←
JasperReports
둘러보기로 가기
검색하러 가기
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
이 문서는 편집하거나 다른 명령을 할 수 없도록 보호되어 있습니다.
문서의 원본을 보거나 복사할 수 있습니다.
오픈 소스로 다양한 컨텐츠를 PDF, HTML, XLS, CSV 파일 등으로 출력하는 리포팅 툴인 JasperReports를 정리한다. Java Class 파일로 제공되므로 환경 설정을 하여 사용 한다. * 홈페이지 : http://www.jaspersoft.com/, http://sourceforge.net/projects/jasperreports/, http://sourceforge.net/projects/jaspersoft/ :*JasperForge : http://jasperforge.org/plugins/project/project_home.php?group_id=102 * 다운로드 : http://sourceforge.net/project/showfiles.php?group_id=36382 * 라이센스 : GNU LGPL 3.0 * 플랫폼 : Java <br> ==설치 가이드== *Web Application에 환경 설정 :*[http://sourceforge.net/project/showfiles.php?group_id=36382 다운로드 사이트]에서 "jasperreports-3.1.4-project.zip"을 다운로드 한다. :*압축을 풀어 lib/* 과 dist/*.jar 파일을 /WEB-INF/lib 폴더에 복사 한다. :*필요한 JDBC Driver를 /WEB-INF/lib 폴더에 복사하고 Apache Tomcat을 재기동 한다. <br> ==사용자 가이드== *[[iReport]]에서 작성한 jrxml 파일과 DB 접속 정보로 문서(html, xml, csv, pdf, rtf, xls) 문서를 생성하는 라이브러리 샘플 (pnus.jasperreports.jasperreports.java) :*$TOMCAT_HOME/webapps/jasperreports : JasperReports를 적용한 Web Application :*$TOMCAT_HOME/webapps/jasperreports/jrxml/ : jrxml 파일 저장 폴더 :*$TOMCAT_HOME/webapps/jasperreports/files/[type]/ : 생성된 문서 저장 폴더, type별로 다른 폴더를 사용함 package pnus.jasperreports; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.HashMap; import java.util.Map; import net.sf.jasperreports.engine.JRAbstractExporter; import net.sf.jasperreports.engine.JRException; import net.sf.jasperreports.engine.JRExporterParameter; import net.sf.jasperreports.engine.JasperCompileManager; import net.sf.jasperreports.engine.JasperFillManager; import net.sf.jasperreports.engine.JasperPrint; import net.sf.jasperreports.engine.JasperReport; import net.sf.jasperreports.engine.export.JRCsvExporter; import net.sf.jasperreports.engine.export.JRGraphics2DExporter; import net.sf.jasperreports.engine.export.JRHtmlExporter; import net.sf.jasperreports.engine.export.JRPdfExporter; import net.sf.jasperreports.engine.export.JRPrintServiceExporter; import net.sf.jasperreports.engine.export.JRRtfExporter; import net.sf.jasperreports.engine.export.JRTextExporter; import net.sf.jasperreports.engine.export.JRXlsExporter; import net.sf.jasperreports.engine.export.JRXlsExporterParameter; import net.sf.jasperreports.engine.export.JRXmlExporter; public class jasperreports { public static String jdbcDriverMySQL = "com.mysql.jdbc.Driver"; public static String jdbcUrlMySQL = "jdbc:mysql://localhost/dotprojectdb"; private static String username = "DB 사용자 아이디"; private static String password = "DB 사용자 암호"; private static Connection conn = null; private String rootJrxml = "$TOMCAT_HOME/webapps/jasperreports/jrxml/"; private String rootFile = "$TOMCAT_HOME/webapps/jasperreports/files/"; public String makeReport(String jrxml, String query, String type, String filename) { JasperReport report = null; JasperPrint print = null; JRAbstractExporter exporter = null; Map<String, String> param = new HashMap<String, String>(); String outFilename = null; openDatabase(); try { param.put("query", query); report = JasperCompileManager.compileReport(rootJrxml + jrxml); print = JasperFillManager.fillReport(report, param, conn); outFilename = rootFile + type + "/" + filename; if (type == "html") { exporter = new JRHtmlExporter(); } else if (type == "xml") { exporter = new JRXmlExporter(); } else if (type == "csv") { exporter = new JRCsvExporter(); } else if (type == "pdf") { exporter = new JRPdfExporter(); } else if (type == "rtf") { exporter = new JRRtfExporter(); } else if (type == "xls") { exporter = new JRXlsExporter(); exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE); } else { return null; } exporter.setParameter(JRExporterParameter.JASPER_PRINT, print); exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, outFilename); exporter.exportReport(); } catch (JRException jrException) { jrException.printStackTrace(); return null; } finally { closeDatabase(); } return outFilename; } private boolean openDatabase(String jdbcDrive, String jdbcUrl, String username, String password) { if (conn != null) { return true; } try { Class.forName(jdbcDrive).newInstance(); conn = DriverManager.getConnection(jdbcUrl, username, password); } catch (InstantiationException e) { e.printStackTrace(); return false; } catch (IllegalAccessException e) { e.printStackTrace(); return false; } catch (ClassNotFoundException e) { e.printStackTrace(); return false; } catch (SQLException e) { e.printStackTrace(); return false; } return true; } private boolean openDatabase(String username, String password) { return openDatabase(jdbcDriverMySQL, jdbcUrlMySQL, username, password); } private boolean openDatabase() { return openDatabase(username, password); } private void closeDatabase() { try { if ((conn != null) && (!conn.isClosed())) { conn.close(); } } catch (SQLException e) { } conn = null; } } <br> *위 pnus.jasperreports.jasperreports.java를 사용하는 샘플 JSP 파일 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="pnus.jasperreports.jasperreports" %> <% jasperreports report = null; String type = null; String filename = null; String query = null; String rtStr = null; request.setCharacterEncoding("UTF-8"); type = "html"; filename = "test01.html"; report = new jasperreports(); query = "select project_name, project_start_date, project_end_date," + " project_owner, project_actual_end_date, project_percent_complete" + " from projects"; rtStr = report.makeReport("test01.jrxml", query, type, filename); %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>다우기술 PMS</title> </head> <body> JasperReport<br> [<%= rtStr %>]<br> <a href="/jasperreports/files/<%= type %>/<%= filename %>" target="_blank"><%= filename %></a> </body> </html> <br> ==관리자 가이드== ===한글 설정=== *PDF에서 한글을 출력하기 위해서 jrxml 파일에서 다음과 같이 설정 한다. <textElement textAlignment="Center" verticalAlignment="Middle"> <font isBold="true" pdfFontName="d:/www_project/projectJasperReports/WebContent/fonts/gulim.ttf" pdfEncoding="Identity-H"/> </textElement> ==참고 문헌== *[[iReport]] *[[jasper]] *[http://jasperforge.org/ JasperForge] *[http://dev.anyframejava.org/anyframe/doc/web/3.0.1/webfw/integration/jasperreport/introduction.html JasperReports 소개] : 삼성 Anyframe에서 외부 구성 요소로서 정리한 자료 *[http://sourceforge.net/projects/itext/ iText, a JAVA-PDF library] [[Category:오픈소스]] [[Category:BI]]
JasperReports
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
이름공간
문서
토론
변수
보기
읽기
원본 보기
역사 보기
더 보기
검색
주요 메뉴
오픈소스 컨설팅
오픈소스
오픈소스 라이선스
오픈소스 커뮤니티
오픈소스 종류
오픈소스 현황
오픈소스 한글화
문자셋과 인코딩
Storage
Network
보안
고가용성
모니터링
오픈 API
오픈 서비스
Cloud
BigData
Android
산사랑 노트
둘러보기
인기 문서
최근 수정 문서
모든 문서
모든 분류
임의 문서
위키 사용법
자매 사이트
CMS
오비컨 홈페이지
오비컨 CMS
블로그
데모 - SuiteCRM
산사랑의 Twitter
산사랑의 Facebook
친구 사이트
공개SW 포털
OLIS
한국공개소프트웨어협회
AppCenter 지원본부
OLC
PSEG
개발자 블로그
블로터
개인 메뉴
메뉴 수정
양식함
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보