【Java】JasperReports - 特定編碼消失時,處理筆記 (1)


  1. 檢查欄位,長度夠(排除)
  2. 字體更換+ encoding更換
    • <reportFont /> (有效)
      • name="MHei-Medium" 
      • fontName="細明體"   
      • pdfFontName="mingliu.ttf"  →更換此設定,特殊字出現中文字消失
      • pdfEncoding="Identity-H" 
      • isPdfEmbedded="true"
        ※備註:(粗體項目) 的設定需 一致


為從檔案底層 修正輸出字體
要正確的改字體,所以載JasperSoft 進行修正
 →使用JasperSoft 編輯,產生新style設定

eclipse無法開啟該修正後jrxml
>看log
調整jrxm後,需要輸出正確的.jasper檔案
 →Eclipse開啟修改後jrxml時的錯誤log訊息
 Caused by: cvc-complex-type.3.2.2: 不允許屬性 'uuid' 出現在元素 'jasperReport' 中。

>可能是少jar檔問題
從JasperSoft 安裝路徑中抓 jasperreports-6.8.0.jar 掛進去eclipse 
重新開啟eclipse 
無效

>刪除屬性 uuid
用notepad+ 打開並刪除
→出現新的錯誤訊息
  Caused by: cvc-complex-type.3.2.2: 不允許屬性 'splitType' 出現在元素 'band' 中。

>刪除屬性 splitType
→出現新錯誤訊息
  Caused by: cvc-complex-type.3.2.2: 不允許屬性 'stretchType' 出現在元素 'band' 中。

>>>>>>>>可開啟>>>>>>特定編碼依然消失????



Report Font 屬性 的下拉選單是空白?
如何增加Report Font的下拉選單?
>直接仿照寫法,增加一行。





→NotoSans-Regular.ttf + 哪個 PDF Encoding?
> Identity-H  :沒圈圈,有特殊符號 但中文消失
> Cp1250  :沒圈圈,有特殊符號 但中文是問號
> MacRoman :沒圈圈,特殊符號跟中文皆是問號

→更換成 DejaVuSerif.ttf +哪個 PDF Encoding?
> Identity-H   :有圈圈,有特殊符號,但中文消失

→更換成 DejaVuSans.ttf +哪個 PDF Encoding?
> Identity-H   :有圈圈,有特殊符號,但中文消失

→更換成 MSJH.TTF (微軟正黑)
> Identity-H   :特殊符號消失,中文正常