如圖;需要添加的文字水印樣式如下
在本地測試的時候;添加文字後的水印圖;字體水印樣式正常;上了服務器就不行,如下圖,沒有應用上實際需要的樣式
原因:我查了一些資料說是因爲 服務器上沒有對應的字體樣式;給的解決方案是
通過網上下載或者其他系統拷貝(例如 宋體字體文件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對象;方法如下
代碼:
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());