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

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

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

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

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

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

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

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

5.由于放入的图片是在本地,因此须要把该图片放入到服务器上去,由于个人工程为MAVEN工程,因此把图片和项目放在一块儿,放置路径为:code

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

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工程,测试报表便可        

相关文章
相关标签/搜索