ireport报表中无法识别的生僻字的使用图片代替

在利用ireport输出报表的时候,有些生僻字无法处理,报的异常为--->数组下标越界

在网上查找了相关资料,没有找到解决办法,实在没辙了,只能使用图片代替了...

步骤:(假设在模板中放入生僻字的是一个static text文本元素)

1.把生僻字用正常的字代替,然后输出报表,导出excel表格

2.在excel表格中把正常的字用原来的生僻字代替,再利用QQ截图,保存为JPG的格式(在excel中截图清晰些,该截图的大小和放入生僻字的static text文本元素的大小有一致)

3.删除放置生僻字的static text元素,并且在static text的位置放入图片元素image,它会弹出一个对话框让你选择图片,选择刚才的QQ截图

4.经过上面三个步骤之后,新的模板就生成好了,接下来看效果,发现改图片可以在PDF预览中正常显示,导出的excel中也能正常显示

5.因为放入的图片是在本地,所以需要把该图片放入到服务器上去,因为我的工程为MAVEN工程,所以把图片和项目放在一起,放置路径为:

java Resource--->src/main/resource--->image--->title.jpg

6.在jrxml模板中使用xml视图,CTRL+F,查找jpg,会找到在模板中放入本地的QQ截图

​<imageExpression><![CDATA["C:\\USER\\title.jpg"]]></imageExpression>

​

把该图片去掉,换成变量名$P{path},修改之后为

<imageExpression><![CDATA[$P{path2}]]></imageExpression>

7.在模板中加入parameter参数:path

8.在java后台放入模板参数,java代码如下:(给模板加入参数的代码可能会有所不同,只要达到给模板添加可识别的参数path就可以了)

 String path = "";
 if(this.getClass().getClassLoader().getResource("image/title.jpg") != null){
      path = this.getClass().getClassLoader().getResource("image/title.jpg").getPath();
 };
 param.getParameters().put("path",path));

可以在eclipse中DEBUG测试一下,如果path不等于null,表示 能够在项目中能够正确的找到图片,如果为null,则表示图片放错地方了...   

9.编译MAVEN工程,测试报表即可        

转载于:https://my.oschina.net/u/2331760/blog/714319

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iReport是一个开源的报表设计工具,它基于Java开发,可以用于创建、设计和生成各种类型的报表。下面是对iReport报表开发的详解: 1. 安装和配置:首先,你需要下载并安装iReport工具。一般来说,iReport可以与多种开发环境集成,比如Eclipse、NetBeans等。安装完成后,你需要配置iReport与你的开发环境的连接。 2. 数据源配置:在iReport,你需要配置数据源,以便从数据库或其他数据源获取数据。你可以选择使用JDBC连接来配置数据库连接,或者使用其他自定义的数据源。 3. 报表设计:一旦数据源配置完成,你可以开始设计报表iReport提供了丰富的报表元素,比如文本框、图片、表格、图表等,可以根据需求进行布局和设计。你可以通过拖拽和放置元素来创建报表的布局,并设置元素的属性和样式。 4. 数据绑定:在报表设计过程,你需要将数据源的数据绑定到报表元素上。通过选择数据源字段并将其拖拽到相应的报表元素上,你可以将数据展示在报表。你还可以使用表达式和函数来对数据进行计算和处理。 5. 样式和格式化:iReport提供了丰富的样式和格式化选项,可以对报表元素进行样式设置和数据格式化。你可以设置字体、颜色、边框等样式属性,以及日期、数字等数据的格式化规则。 6. 参数和变量:如果需要在报表使用参数或变量,你可以在iReport进行配置。参数可以用于动态过滤报表数据,而变量可以用于计算和存储

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值