Jasper Report를 사용하면서 Base64 코드로 이미지를 추가해야하는 경우가 발생했다
이때 코드를 불러오는 방법은 2가지로 생각해볼 수 있었다.
1) CLOB 타입으로 선언된 컬럼에 담아둔 Base64코드를 Field로 불러오기
2) 이클립스에서 변수선언을 하여 parameter로 넘겨주기
2가지를 모두 시도하였으나 1) 방법의 경우 CLOB이라는 타입을 이겨내지 못해 실패했다.
하여 2) 방법을 사용하였다.
* 1. Palette에 있는 이미지를 선택한다
2. 위와같은 설정창이 떴다면 "Custom expression"을 선택한다.
3. 하단 Options에 아래와 같은 코드를 입력한다.
new ByteArrayInputStream(org.apache.commons.codec.binary.Base64.decodeBase64($P{custSign}.getBytes()))
4. 이때, $P{custSign} 은 파라미터 명이다. 사용자가 설정한 파라미터를 저 부분에 넣어주면 된다.
5. 주의!
- Base64코드를 다 불러오면 안된다. 코드 앞단에 있는 data:image/png;base64, 까지는 자르고 넘겨주어야 한다.
하여, javascript 단에서 parameter로 넘겨줄 때 가공을 해서 넘겨주었다
let strCustSign = objData.substr(22);
'etc' 카테고리의 다른 글
[Jasper Report] summary 사이에 Last Page Footer가 들어갈 때 (1) | 2023.12.05 |
---|