linux下Kaptcha生成的驗證碼圖片文字不顯示


開發環境:win10+springboot1.5+Kaptcha2.3.x

問題:驗證碼圖片在windows下正常顯示,在Linux下能顯示圖片,但不顯示文字

相關代碼:

@Bean
    public DefaultKaptcha captchaProducer() {
        DefaultKaptcha captchaProducer = new DefaultKaptcha();
        Properties properties = new Properties();
        // 圖片邊框
        properties.setProperty("kaptcha.border", "yes");
        // 邊框顏色
        properties.setProperty("kaptcha.border.color", "105,179,90");
        // 字體顏色
        properties.setProperty("kaptcha.textproducer.font.color", "red");
        // 圖片寬
        properties.setProperty("kaptcha.image.width", "110");
        // 圖片高
        properties.setProperty("kaptcha.image.height", "40");
        // 字體大小
        properties.setProperty("kaptcha.textproducer.font.size", "30");
        // session key
        properties.setProperty("kaptcha.session.key", "code");
        // 驗證碼長度
        properties.setProperty("kaptcha.textproducer.char.length", "4");
        // 字體
        properties.setProperty("kaptcha.textproducer.font.names", "宋體,楷體,微軟雅黑");
        Config config = new Config(properties);
        captchaProducer.setConfig(config);
        return captchaProducer;
    }

原因及解決方法:由於Linux環境不存在相關字體,需先在Linux下安裝字體

安裝字體:系統 centos7

1、yum -y install fontconfig

2、進入 /usr/share 可以看到 fontconfig、fonts目錄生成

3、在Windows系統上,拷貝需要的字體

4、將所需的字體上傳的到Linux環境的 /usr/share/fonts/chinese目錄:

如果沒有  /usr/share/fonts/chinese 目錄,執行如下命令:

mkdir -p /usr/share/fonts/chinese
chmod -R 755 /usr/share/fonts/chinese

上傳字體如圖:

5、安裝ttmkfdir來搜索目錄中所有的字體信息,並匯總生成fonts.scale文件

yum -y install ttmkfdir

ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir

 

6、修改字體配置文件了

 vi /etc/fonts/fonts.conf

7、刷新內存中的字體緩存,這樣就不用reboot重啟了

fc-cache

fc-list看一下字體列表。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM