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工程,測試報表便可        

相關文章
相關標籤/搜索