版權聲明:本文為樓主原創文章,未經樓主允許不得轉載,如要轉載請注明來源。
引言:這兩天在開發一個動態生成海報的東西(圖片拼接,圖片水印),開發在windows下沒有問題,圖片和文字都能正常的生成出來。但是當我將程序發布到服務器上(linux)時,發現生成的海報圖片文字沒生成出來。樓主使用的是graphics.drawString("張三", chunkWidth, chunkHeight);這里graphics使用的字體樓主設置的是宋體。而BufferedImage在內存創建的圖像調用的是服務器端的字體。而程序所在的linux服務器沒有裝該字體,所以就出現了文字沒生成出來的問題。下面講怎樣在linux服務器下添加字體。
這里我將本機的宋體安裝到linux服務器上。
首先得找到宋體的文件,很簡單:我們打開c盤,搜索simsun.ttc,然后將該文件copy一份。或者自己網上去下載也行。
樓主試了兩種方法:
1.在java環境中添加字體
首先進入到服務器使用的jre目錄,一般都是在:usr/lib/jvm/java-6-sun/jre/lib/fonts
使用的命令就是 cd usr/lib/jvm/java-1.8.0/jre/lib/fonts.
注意:這里的java-1.8.0可能和你的不一樣,按你自己的名稱進入。如果進去之后沒有fonts文件夾,就自己創建一個,命令是 mkdir fonts
進入之后,將simsun.ttc文件copy到該目錄下即可。(可以使用文件服務器放上去,你也可以使用linux的cp命令)
然后重啟服務器就ok
2.添加系統字體
首先需要將simsun.ttc放到服務器上,可以建一個目錄,樓主建的目錄為:fonts
進入到該目錄,將simsun.ttc放在該目錄下,然后開始執行以下命令:
[root@localhost fonts]# mkfontscale [root@localhost fonts]# mkfontdir [root@localhost fonts]# fc-cache
這樣在重啟服務器就ok了。