2019/1/9

Jasper Report Server 中文問題


來源:
http://www.ouchpin.com/articles/Jasper-Report-Server-5-6-0-installation/

網頁上說的是iReport,我用的是JasperReport studio
算是大同小異,因為要解決PDF中文問題
進入設定:


然後從下面的地方設定

 之後點選export,將字體匯出為jar
 將那一個jar檔案放到jasperReport上
路徑是/opt/jasperreports-server-cp-7.1.0/apache-tomcat/webapps/jasperserver/WEB-INF/lib
之後重起tomcat

網頁內有寫到一句話:
直接使用系統中文字型, 放到 server 會不能顯示, 要使用另外安裝的字型(橫線以上的)
意思指:


另外,在studio裡面也要指定剛剛設定的字型,這樣在server上與匯出成PDF才能顯示中文



補充1:我抓的是思源黑體的otf,要轉成ttf才能使用
 2019/1/30補充:這種方式,會讓HTML的郵件超過10M,還要想方式怎麼樣能夠PDF顯示中文,HTML郵件檔案大小不會超過

2020/11/27補充:搜尋到有其他網站發佈的修改中文ttf檔案,只有4.75M左右
後續測試結果再記錄

2019/1/8

JasperReports Server 發生ArrayIndexOutOfBoundsException: 0

另外文章來寫JasperReport的觀念

發佈到server上之後,一直出現異常
經過檢查tomcat的catalina.out
一直丟給你:(注意紅色字眼)
java.lang.ArrayIndexOutOfBoundsException: 0
        at sun.font.CompositeStrike.getStrikeForSlot(CompositeStrike.java:75)
        at sun.font.CompositeStrike.getFontMetrics(CompositeStrike.java:93)
        at sun.font.Font2D.getFontMetrics(Font2D.java:415)
        at java.awt.Font.defaultLineMetrics(Font.java:2176)
        at java.awt.Font.getLineMetrics(Font.java:2246)
一開始不知道為何,經過研究(google)之後
提示出來是因為font問題
然後找到下面線索:
http://w3cgeek.com/upgrade-rhel-from-7-3-to-7-4-arrayindexoutofboundsexception-in-sun-font-compositestrike-getstrikeforslot.html
告訴你:在redhat裡面要設定字型
所以,在/etc/fonts/裡面新增local.conf,然後新增下面設定
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <alias>
    <family>serif</family>
    <prefer><family>Utopia</family></prefer>
  </alias>
  <alias>
    <family>sans-serif</family>
    <prefer><family>Utopia</family></prefer>
  </alias>
  <alias>
    <family>monospace</family>
    <prefer><family>Utopia</family></prefer>
  </alias>
  <alias>
    <family>dialog</family>
    <prefer><family>Utopia</family></prefer>
  </alias>
  <alias>
    <family>dialoginput</family>
    <prefer><family>Utopia</family></prefer>
  </alias>
</fontconfig>
重起tomcat之後,報表就正常出來了
(至於要安裝其他字型,我還要再研究)

手機QQ禁用NFC

一圖解千言萬語 應用程式權限:透過NFC起動