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