Category Archives: Etc

jasper report 한글 pdf 깨짐/ spring

jasper report를 사용하는데 spring에서 pdf 출력시 한글이 깨져 자료를 찾는데 2, 3년전 자료가 많고 적용해도 동작이 되지 않아 이리 저리 시도하다 찾은 내용을 정리를 하였다. 그래도 많은 분들이 과거에 자료를 올려준 덕분에 시도할 방법에 대한 인사이트를 얻을 수 있었다. 그분들에게 감사드린다.
참고: http://www.spacek.xyz/mle/?p=293
jasper studio manual

 

환경: jasper studio 6.5.1 사용하였다.

Jaspersoft Studio에서 리포트를 만들고 출력할 때, java, html, excel 등은 잘 출력이 되지만 PDF로 출력할 때는 한글이 안보이거나 깨지는 현상이 발생한다. 이를 해결하기 위한 방법은 사용하고자 하는 폰트를 별도로 복사하여 이를 등록하여 사용하는 방법이다.

크게 다음과 같다.

1. 폰트등록
2. 폰트export
3. 스프링에 넣기

1. 폰트등록

다음과 같은 순서로 폰트를 등록한다.

  1. 먼저 사용하고자 하는 폰트를 C:\Windows\fonts 에서 복사하여 원하는 다른 폴더에 복사한다.
  2. Jaspersoft Studio의 Window 메뉴에서 Preference를 선택한다.
  3. 왼쪽 메뉴에서 Jaspersoft Studio를 선택하고 Fonts Sub Menu를 선택한다.
  4. 폰트를 등록하기 위하여 “Add” 버튼을 클릭한다.  이미 등록한 폰트를 수정한다면 원하는 폰트를 선택하고 “Edit”를 클릭하거나 폰트를 더블 클릭한다.
  5. Family Name에 Jaspersoft Studio에서 사용할 이름을 지정한다. 여기서 지정한 이름으로 폰트 콤보에 표시된다.
  6. TrusType(.ttf) 에 좀전에 저장한 폰트를 찾아서 등록한다.
  7. PDF Encoding을 “Identity-H(Unicode with horizontal writing)”을 선택한다. 이 것은 매우 중요하다. 한글 인코딩도 존재하지만 한글을 선택하게 되면 동작하지 않고 그런 Encoding이 없다는 에러가 발생한다.
    만약, 한글을 선택하여 에러가 발생하였다면 등록한 폰트를 삭제하고 다시 신규로 폰트를 만들어야 정상적으로 동작한다. 나의 경우는 이것을 모르고 인코딩만 바꾸어서 다시 시도했다가 많은 시간을 낭비했다.
  8. “Embed this font in PDF document”는 체크해도 되고 안해도 된다. 두 경우 모두 정상적으로 동작하는 것 같다. 다만, 운영체제에서 지원하지 않는 폰트라면 체크하여 폰트도 같이 문서에 포함하여 배포하는 것이 좋을 것이다.
  9. “Finish”를 누르고 창을 닫는다.
  10. 이제 폰트 설정창에 좀전에 등록한 한글이름이 상단에 표시된다.

위와 같이 ‘맑은 고딕’ 폰트를 추가하였다고 하자.

이제 위에서 추가한 폰트를 export해야 하고 스프링에 올려야 한다.

2. 폰트 export
(여기서 적은 내용은 jasper studio user-guide의 ch 9 – fonts에도 있는 내용이다. )

1. jasper studio에서 Window > Preferences > Jaspersoft Studio > Fonts 로 이동. 폰트셋을 선택하고 Export 를 선택한다. 우리는 ‘맑은 고딕’을 선택한다.
2. export 할 이름을 지정하고 Save를 누르면 해당 이름의 jar가 생성된다. 필자는 malgun.jar로 하였다.

3. 스프링에 올리기
WEB-INF 밑에 lib 폴더를 생성하고 위에서 생성한 malgun.jar를 넣어주자.

이제 레포트 파일에서 ‘맑은 고딕’ 이라고 지정된  부분은 pdf 출력시 깨지지 않고  잘 출력됨을 알 수 있다.

 

 

Advertisements

Amore Dei (가사)

Amor Dei
(바닥에 새긴 사랑 앨범 중)

하나님 사랑 날 위하여

하늘 영광 버리고 오셨네

저 높은 별 넘어 낮고 낮은 땅 위에

갈보리 언덕 십자가 지시고

물과 피를 흘려 죽으신 주

저 하늘 높이 올라가

내 사랑하는 주 만날 수 있을까

저 바다 끝에 달려가

내 사랑 내 주님을 뵈올 수 있을까

하나님 사랑 그 사랑

다함없는 그 품

내 마음 모두 드리리

나는 주의 것 주님 내 구주니

아무 것 부족함 없겠네

나 주안에 살고 주님은 내 안에서 살리

영원토록

substring – mysql vs mssql

* substring – mysql vs mssql

* mysql
substring (COLNM, startindex, length)
startindex가 1부터 시작
주의: startindex에 0을 주면 결과가 empty string

SELECT substring(‘abcde’,1,3) –> abc
SELECT substring(‘abcde’,0,3) — empty

* mssql
substring (COLNM, startindex, length)
startindex가 1부터 시작
주의: startindex에 0을 주면 결과가 뒤자리에서 하나가 잘린결과 나옴
SELECT substring(‘abcde’,1,3) –> abc
SELECT substring(‘abcde’,0,3) –> ab

[mybatis] 다중 업데이트 – 리스트

리스트를 이용한 업데이트

자바단에서 리스트 루프가 아닌 마이바티스에서 루프 돌리는 방법

참고: https://stackoverflow.com/questions/35480461/updating-multiple-database-rows-in-spring-mybatis

선행: JDBC 커넥션 스트링에 다음을 추가.
allowMultiQueries=true

<update id="updateEmployeeTrips" parameterType="java.util.List">
    <foreach collection="list" item="employeeTrips" index="index" separator=";">
        update employee_trips set pickup_drop_time = #{employeeTrips.pickupTime} where id = #{employeeTrips.id}
    </foreach>
</update>