Jasper Reports使用Base64字符串作为图片展示

时间:2024-03-21 13:08:15

Jasper Reports使用Base64字符串作为图片展示

最近有一个需求,是要将用户的头像的Base64字符串编码导出在PDF上,而导出PDF使用的是Jasper Reports工具进行绘制PDF模板(jrxml文件),但是Jasper Reports使用Base64字符串作为图片并没有直接的配置选项,此文通过相关的配置使Jasper Reports能够渲染Base64字符串编码的图片

新建一个空白.jrxml文件

  • 新建Jasper Report
Jasper Reports使用Base64字符串作为图片展示
新建一个jasper文件
  • 选择模板

Jasper Reports使用Base64字符串作为图片展示

  • 填写名称

Jasper Reports使用Base64字符串作为图片展示

放置图片元素

  • 选择Image标签拖拽到Blank_A4.jrxml的自定义位置

Jasper Reports使用Base64字符串作为图片展示

  • 选择No Image就可以

Jasper Reports使用Base64字符串作为图片展示

设置Image的expression参数

  • 首先新增一个Parameters或者一个Fields,这里以Parameters为例

Jasper Reports使用Base64字符串作为图片展示

  • 配置新增的Parameter属性(这里将Name设置为imgDataUrl)

Jasper Reports使用Base64字符串作为图片展示

  • 设置Image的Expression

Jasper Reports使用Base64字符串作为图片展示

Expression参数的值为(不需要引号引起来):

new ByteArrayInputStream(org.apache.commons.codec.binary.Base64.decodeBase64($P{imgDataUrl}.getBytes()))

其中$P{imgDataUrl}就是之前创建的Name为imgDataUrl的Parameter

预览效果

填写imgDataUrl的值(图片的Base64编码字符串值,注:该处不需要"data:image/jpeg;base64,"前缀,直接填写值即可)

Jasper Reports使用Base64字符串作为图片展示