java生成pdf字體的坑
做過java生成pdf的應該都知道有很多坑,特別是字體。
這里就記錄一下字體的問題。
-
系統必須安裝字體,項目的resources目錄放置了要用到的中文字體,宋體和黑體。並在代碼中進行了引用。但是實際發現系統仍然需要安裝字體。
-
安裝字體的坑
這里主要記錄一下安裝字體的坑
網上找到的教程
cd /usr/share/fonts/
mkdir chinese
cd chinese
cp /root/simhei.ttf simhei.ttf # 字體上傳在root用戶目錄下
cp /root/simsun.ttf simsun.ttf # 字體上傳在root用戶目錄下
mkfontscale
mkfontdir
fc-cache -fv
這里確實導入了字體,但是使用發現,生成的pdf會有文字不換行,以及轉成tiff圖片后,漢字均不顯示的問題。
因為開發環境是windows,測試環境是linux(開發經常遇到環境的問題)。然后真的是windows下沒有問題,所以還是覺得代碼沒有問題,問題還是出在字體上。
繼續尋找linux字體的教程,發現有一個教程多一個步驟
chmod -R 755 /usr/share/fonts/chinese
趕緊在測試服務器上看一下文件權限
[root@shtplybremake01 share]# cd fonts
[root@shtplybremake01 fonts]# ll
total 16
drwxr-x--- 2 root root 91 Nov 17 15:39 chinese
drwxr-xr-x. 2 root root 4096 Jul 20 15:51 google-droid
drwxr-xr-x. 2 root root 8192 Jul 20 15:53 urw-base35
果然chinese和其他2個目錄不一樣。接着按照教程修改權限。重新生成並驗證。
[root@shtplybremake01 fonts]# chmod -R 755 chinese/
[root@shtplybremake01 fonts]# ll
total 16
drwxr-xr-x 2 root root 91 Nov 17 15:39 chinese
drwxr-xr-x. 2 root root 4096 Jul 20 15:51 google-droid
drwxr-xr-x. 2 root root 8192 Jul 20 15:53 urw-base35