JasperReports에서 파일 입력(예: 이미지나 다른 리소스 파일)을 처리하려면 일반적으로 파라미터 또는 필드를 사용하여 해당 파일의 경로나 바이트 배열을 전달합니다.
다음은 파일 입력을 처리하는 주요 방법을 몇 가지 나열한 것입니다:
파라미터를 사용하여 이미지 바인딩:
보고서에 이미지를 삽입하려면 파라미터를 사용하여 이미지의 경로나 바이트 배열을 전달할 수 있습니다.
.jrxml
파일에서 파라미터를 정의합니다:<parameter name="imageParam" class="java.lang.String"/>
<image>
<imageExpression><![CDATA[$P{imageParam}]]></imageExpression>
</image>
Map<String, Object> params = new HashMap<>();
params.put("imageParam", "path_to_your_image.jpg");
JasperPrint print = JasperFillManager.fillReport(jasperReport, params, dataSource);
필드를 사용하여 이미지 바인딩:
데이터 소스의 일부로 이미지를 전달하려면 필드를 사용할 수 있습니다.
.jrxml
파일에서 필드를 정의합니다:<field name="imageField" class="java.awt.Image"/>
<image>
<imageExpression><![CDATA[$F{imageField}]]></imageExpression>
</image>
Image
타입의 속성과 해당 속성의 getter 메소드가 필요합니다.바이트 배열로 이미지 바인딩:
이미지를 바이트 배열로 전달하려면 InputStream
또는 byte[]
형식을 사용할 수 있습니다. 이 방법은 DB에서 이미지를 직접 읽어올 때 유용합니다.
위의 방법 중 하나를 선택하여 파일 입력을 JasperReports에 바인딩할 수 있습니다.