Jasper Reports使用Base64字符串作为图片展示
最近有一个需求,是要将用户的头像的Base64字符串编码导出在PDF上,而导出PDF使用的是Jasper Reports工具进行绘制PDF模板(jrxml文件),但是Jasper Reports使用Base64字符串作为图片并没有直接的配置选项,此文通过相关的配置使Jasper Reports能够渲染Base64字符串编码的图片
新建一个空白.jrxml文件
- 新建Jasper Report
- 选择模板
- 填写名称
放置图片元素
- 选择Image标签拖拽到Blank_A4.jrxml的自定义位置
- 选择No Image就可以
设置Image的expression参数
- 首先新增一个Parameters或者一个Fields,这里以Parameters为例
- 配置新增的Parameter属性(这里将Name设置为imgDataUrl)
- 设置Image的Expression
Expression参数的值为(不需要引号引起来):
new ByteArrayInputStream(org.apache.commons.codec.binary.Base64.decodeBase64($P{imgDataUrl}.getBytes()))
其中$P{imgDataUrl}就是之前创建的Name为imgDataUrl的Parameter
预览效果
填写imgDataUrl的值(图片的Base64编码字符串值,注:该处不需要"data:image/jpeg;base64,"前缀,直接填写值即可)