前幾天因?yàn)轫?xiàng)目需要使用了一種特殊字體AAAA鸣奔,把這種字體安裝到windows下的字體文件FONTS里后,皕杰報(bào)表設(shè)計(jì)器里的單元格字體屬性就可以查到這種字體了扣汪,且在頁(yè)面上預(yù)覽能夠正常顯示锨匆。見(jiàn)圖:
然而當(dāng)導(dǎo)出PDF文件時(shí)卻顯示亂碼,見(jiàn)圖茅主,百思不得其解。
仔細(xì)分析一下响牛,報(bào)表預(yù)覽時(shí)能夠正常顯示赫段,說(shuō)明預(yù)覽時(shí)用的是系統(tǒng)里的字體,而導(dǎo)出是亂碼而不是小方塊贬丛,說(shuō)明有這個(gè)字體炬丸,但在報(bào)表導(dǎo)出時(shí)用的卻是另一種字體替代了,那么是用哪里的字體替代的呢?
回想一下皕杰報(bào)表導(dǎo)出pdf變成小方塊的問(wèn)題的解決方案:
1焕阿、查一下系統(tǒng)是否有中文字符集首启。
2、查一下系統(tǒng)是否有中文字體褒纲。
3钥飞、查一下JDK是否加載了中文字體。
對(duì)照以上三條彻秆,似乎漏掉了JDK的問(wèn)題结闸,應(yīng)該導(dǎo)出pdf時(shí)用到了JDK里的字體,找不到就用一種類(lèi)似的替代了扎附。趕緊把特殊字體放到j(luò)re中的字體文件里進(jìn)行測(cè)試结耀,果然是這個(gè)問(wèn)題匙铡,導(dǎo)出pdf特殊字體ok了碍粥。
遇到問(wèn)題不用急,仔細(xì)想想導(dǎo)致問(wèn)題的可能原因,再去逐一排查和測(cè)試博肋,總能找到問(wèn)題的結(jié)癥和解決辦法。