Skip to content

JasperReports #
Find similar titles

Structured data

Category
Programming

Jasperreports란 #

  • Jasperreports는 오픈 소스로 다양한 컨텐츠를 PDF, HTML, XLS, CSV 파일 등으로 출력하는 리포팅 툴이다. 전체적으로 자바로 쓰여졌으며, 다양한 어플리케이션에서 사용되어 다양한 포맷으로 컨텐츠를 생성할 수 있다. XML 포맷으로 리포트 디자인을 작성하여 컴파일 한 후 RDBMS와 JDBC를 통해 데이터를 바인딩함으로써 최종적으로 다양한 리포트을 생성할 수 있다.
  • JasperReports 특징을 살펴보면 다음과 같다. :
    • 다양한 Reporting Output 형태(PDF, HTML, XLS, CSV 등) 제공
    • 다양한 Data Source를 이용하여 Reporting 데이터를 구성할 수 있음
    • 다양한 레이아웃으로 Reporting이 가능하며 Chart 및 Graphical한 화면 요소 제공
    • Graphical한 Report Designer 제공(여러 종류의 유/무료 툴 사용 가능)

기본환경 #

 * Tomcat7
 * 프레임워크 : 전자정부프레임워크
 * JasperReports 6.2.0
   (http://community.jaspersoft.com/download)
 * PDF뷰어 : PDFJS
 * JasperReports용 font : 맑은 고딕(malgun.ttf)

설정사항 #

  • 아래내용은 본인이 실제 경험을 근거로 작성하였다.
  • 우선 jasperreport의 jar파일과 관련 jar파일을 다운받는다. 본인은 Maven을 사용하였다.

    <dependency>
        <groupId>net.sf.jasperreports</groupId>
        <artifactId>jasperreports</artifactId>
        <version>5.0.0</version>
    </dependency>
    <dependency>
        <groupId>net.sf.jasperreports</groupId>
        <artifactId>jasperreports-fonts</artifactId>
        <version>4.0.0</version>
    </dependency>
    <dependency>
        <groupId>com.google.code.maven-play-plugin.org.apache.commons</groupId>
        <artifactId>commons-javaflow</artifactId>
        <version>1590792</version>
    </dependency>
    <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils-core</artifactId>
        <version>1.8.3</version>
    </dependency>
    <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.2.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-digester3</artifactId>
        <version>3.2</version>
    </dependency>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itextpdf</artifactId>
        <version>5.4.0</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>2.1.1</version>
    </dependency>
    
  • 폰트설정

    • 다운받은 폰트를 WEB-INF하위에 위치시킨다. 그 후 폰트가 위치한 폴더를 CLASSPATH로 잡아준다.

    • eclipse에서는 server->open launch configuration->Classpath->Advanced로 접근하여 폴더를 추가한다.

    • eclipse환경이 아는 war배포시라면 해당 컴퓨터의 server가 리눅스라면 catalina.sh 윈도우라면 catalina.bat을 실행하여 "CLASSPATH=$CLASSPATH:$CATALINA_HOME/webapps/LIMS/WEB-INF/font"를 추가한다.
  • .properties파일 설정

    • .jrxml파일이나 .jasper파일을 프로젝트에 업로드하고 이를 연결할 수 있는 .properties파일을 작성한다. 본인은 supreport를 4개를 활용한다. supreport의경로는 mainreport의 경로를 참고하는 듯하다. 특별히 위치를 지정할 필요가 없다. 하지만, DataKeys는 모두 지정해준다.

      multiformat-view.(class)=org.springframework.web.servlet.view.jasperreports.JasperReportsMultiFormatView
      multiformat-view.url=/WEB-INF/reports/rcppReport.jrxml
      multiformat-view.reportDataKey=rcppReport
      multiformat-view.subReportDataKeys=rcppReport_preStep
      multiformat-view.subReportDataKeys=rcppReport_distinStep
      multiformat-view.subReportDataKeys=rcppReport_preStep
      multiformat-view.subReportDataKeys=rcppReport_preStep
      
  • dispatcher-servlet 설정

    • 이제 위에 만든 .properties파일의 위치를 지정해주기 위해 dispatcher-servlet.xml의 아래 내용을 추가해준다.

       <bean id="viewMappings" class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
              <property name="basename" value="config/jasper-views" />
              <property name="order" value="0" />
          </bean>
      
0.0.1_20140628_0