Graphics2D繪製文字水印,本地字體樣式正常,服務器樣式無法顯示

如圖;需要添加的文字水印樣式如下

需要添加的文字水印樣式
在本地測試的時候;添加文字後的水印圖;字體水印樣式正常;上了服務器就不行,如下圖,沒有應用上實際需要的樣式
實際添加的文字水印樣式
原因:我查了一些資料說是因爲 服務器上沒有對應的字體樣式;給的解決方案是

通過網上下載或者其他系統拷貝(例如 宋體字體文件simsun.ttc
simsun.ttf)將其通過ftp上傳到服務器並拷貝到/usr/local/jdk/jre/lib/fonts/ 目錄下(jdk 安裝目錄 ) | Linux查看jdk安裝位置命令 : which java,然後重啓下java進程即可

但是我按照上面的方法;並沒有解決我的字體樣式應用失敗問題;後面修改了創建 Font對象的方法之後解決問題;

=============================================================

原來創建Font字體對象的方法

 Font font = new Font("宋體", Font.PLAIN, temp.getWatermarkSize());

=============================================================
修改之後

將需要使用到的字體上傳到服務器的某一個位置;通過 Font.createFont()方法創建Font對象;方法如下
修改後的Font對象
代碼:

		File file = new File("/opt/temp/font/simsun.ttc");
        Font font = Font.createFont(Font.TRUETYPE_FONT, file);
        //temp.getWaterSize() --> 改字體的大小尺寸
        font = font.deriveFont(Font.PLAIN, temp.getWaterSize());
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章