SpringBoot項目集成字體工具類

        場景:採用JasperReport生成報表時,若將模版中的字體配置成宋體時。部署在不同的系統上時,可能會出現中文亂碼的情況,也可以適用於其他任何需要單獨配置字體的第三方庫。

        首先,你可以給部署的服務器,添加“宋體”字體庫,但這中方法治標不治本。意味着,你每每部署一個系統,最好都要去添加一次字體庫。不利於維護,也不利於實施。

        另外一種方法,將字體集成到項目中,在部署的時候,就可以不去理會服務器是否包含“宋體”。

        注意:“宋體”可換成其他任意的字體

下面以宋體爲例:

在項目的resources下新建fonts目錄,並在windows字體庫中將宋體複製到fonts目錄下

package com.uxsino.commons.utils;

import java.awt.Font;
import java.awt.FontFormatException;
import java.io.IOException;
import java.io.InputStream;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 字體工具類
 * @author jane
 *
 */
public class FontsUtil {
    private static final Logger logger = LoggerFactory.getLogger(FontsUtil.class);

   /**
    * 宋體
    * @param style
    * @param size
    */
    public static Font getSIMSUN(int style, float size) {
        Font font = null;
        //獲取字體流
        InputStream simsunFontFile = FontsUtil.class.getResourceAsStream("/fonts/SIMSUN.TTC");
        try {
            //創建字體
            font = Font.createFont(Font.PLAIN, simsunFontFile).deriveFont(style, size);
        } catch (FontFormatException e) {
            logger.error("",e);
        } catch (IOException e) {
            font = new Font("宋體", Font.BOLD, 6);
            logger.error("",e);
        }
        return font;
    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章