跳至主要內容

中文相关

chanchaw大约 2 分钟linuxcentos

概述

默认 CentOS7 没有中文字体,会导致打印 FineReport 时显示中文有重叠。

安装字体库

# 安装字体库
yum -y install fontconfig
# 查看已安装的字体库
fc-list
# 查看已安装的中文字体库
fc-list :lang=zh

安装中文字体

一般 Linux 字体路径是:/usr/share/fonts,本案例将中文字体安装到 chinese 目录下

# 创建中文字体专用的目录
mkdir -p /usr/share/fonts/chinese
# 权限不够则执行下面的命令
chmod -R 755 /usr/share/fonts/chinese

拷贝字体文件

将 windows 的中文字体(在目录 C:\Windows\Fonts 中)拷贝到 /usr/share/fonts/chinese 下,注意一般是 ttc后缀的文件,可以先从 C:\Windows\Fonts 中将文件拷贝到其他目录下,再次拷贝到 CentOS 系统中。

字体索引和刷新

# 安装字体索引指令
yum install mkfontscale
# 进入字体所在目录
cd  /usr/share/fonts/chinese
# 生成字体索引
mkfontscale
# 查看生效的中文字体
fc-list :lang=zh
# 刷新字体缓存
fc-cache

重启

需要重启用到字体库的服务,例如 FineReport 的后台服务,或者干脆重启 CentOS 系统

设置脚本

# 查看当前默认语言包
locale

# 安装中文语言包
yum install kde-l10n-Chinese

# 临时修改为中文
LANG="zh_CN.UTF-8"

# 永久修改中文
# 第一种
vi /etc/locale.conf
# 追加下面的内容到第一行
LANG=zh_CN.UTF8

# 第二种方法
localectl set-locale LANG=zh_CN.UTF8

字体

打包为 war 的FineReport 项目打印效果中文字体难看是缺少字体导致的,将 windows 中的中文字体拷贝到 /usr/local/jdk1.8/jre/lib/fonts 需要重启服务器才生效。windows中开发者电脑上的所有中文字体压缩包放在180的阿里云盘:安装程序于软件 > 开发与实施 > linux安装包