Linux 服务器字体手动安装与配置详解
在开发 Java 系统时,如果需要生成 PDF 报告或二维码图片,往往对字体有特定要求。很多 Linux 发行版默认并不包含中文字体库,直接运行代码很容易遇到乱码或者回退到默认字体的情况。这时候就需要手动把字体文件部署到服务器端。
首先得确保系统里有必要的工具包。fontconfig 负责管理字体配置,而 mkfontscale 和 mkfontdir 则是用来生成字体索引的。在 CentOS 或类似基于 RPM 的系统上,可以直接用 yum 拉取:
yum install -y fontconfig mkfontscale mkfontdir
接下来就是处理字体文件本身了。假设你手头有一个 simhei.ttf(黑体),先把它传到服务器的临时目录,然后统一放到 /usr/share/fonts/ 下面。这个路径是系统级的字体存放区,所有用户都能访问。
cp simhei.ttf /usr/share/fonts/
文件放好之后别急着用,Linux 需要重新扫描并建立索引才能识别新字体。进入该目录执行以下命令,这一步很关键,它会把字体信息写入数据库:
cd /usr/share/fonts/
mkfontscale .
mkfontdir .
有了索引还得更新缓存,不然程序可能还是读不到新字体。这里建议加上 -fv 参数,强制刷新并显示详细过程,方便排查问题:
fc-cache -fv
确认一下安装是否成功,可以列出系统中所有的中文字体。如果能看到刚才上传的黑体名称,说明配置没问题:
fc-list :lang=zh
最后一步,别忘了重启你的 Java 应用。因为 JVM 启动时会加载一次字体缓存,不重启的话内存里还是旧的状态。搞定这些,PDF 生成和二维码渲染应该就能正常显示中文了。

