pdf 로 한글을 출력하려면 한글폰트를 pdf 에 embed 해야한다.
Jasper studio 에서 미리보기 할 때는 한글이 잘 나오지만(아마 os에 설치된 폰트를 가져오는 듯) pdf 로 출력해보면 한글이 출력되지 않는다.
Jasper studio 에서 템플릿 개발할 때 폰트를 설정하는 방법과 spring 에서 폰트 설정 하는 방법을 알아본다.
jasper studio 한글폰트 설정
1. Jaspersoft Studio - preferences - fonts - add
2. 다음과 같이 입력
Family Name : 나눔고딕 TrueType : 로컬경로/NanumGothic.ttf PDF Encoding : Identity-H Check Embed this font in PDF document |
3. element 의 font property 를 나눔고딕으로 선택
Spring 에서 폰트설정
Jasper 템플릿에서 사용한 font name 과 동일한 이름의 font가 있어야 한다,
1. Jasper studio 에서 font.jar 를 export 하고 스프링에 외부 라이브러리로 추가하는 방법
Jaspersoft Studio - preferences - fonts - 폰트 선택 후 export
2. 폰트파일과 설정파일을 직접 생성
- jasperreports_extension.properties 을 리소스폴더에 추가
- fonts.xml
- 폰트 메타데이터를 저장하는 xml 파일 추가 (경로는 jasperreports_extension.properties 에 넣는다.)
- ttf 파일
(사실 1번의 jar 파일을 풀어보면 동일한 파일들이 존재함)
resource/jasperreports_extension.properties
net.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory
net.sf.jasperreports.extension.simple.font.families.korean=프로젝트 안의 fonts.xml 경로
프로젝트 내의 경로/fonts.xml
<?xml version="1.0" encoding="UTF-8"?>
<fontFamilies>
<fontFamily name="폰트이름(jasper에서 선택한 폰트이름과 동일)">
<normal>"프로젝트 안의 폰트경로"</normal>
<pdfEncoding>Identity-H</pdfEncoding>
<pdfEmbedded>true</pdfEmbedded>
</fontFamily>
</fontFamilies>
'오픈소스 가이드' 카테고리의 다른 글
[JasperReports] #3 spring 안에서 jasper 생성하기 (1) | 2020.07.17 |
---|---|
[JasperReports] #1 Jasper studio (3) | 2020.05.12 |