LibreOffice中文乱码需安装中文字体并刷新缓存。方法包括:系统级(复制字体至/usr/share/fonts/chinese并sudo fc-cache -fv)、用户级(~/.local/share/fonts+fc-cache -fv)、LibreOffice内添加字体路径,以及headless模式下确保权限与环境变量正确。

如果您在使用 LibreOffice 时发现文档中文字显示为方框、乱码或默认字体无法正确呈现中文,很可能是系统缺少对应字体文件。以下是多种安装与管理 LibreOffice 字体的具体方法:
一、系统级字体安装(所有用户生效)
将字体文件复制到系统全局字体目录,并刷新字体缓存,使 LibreOffice 在启动时自动识别并加载这些字体,无需额外配置。
1、确认已安装字体管理工具:执行 sudo yum install -y fontconfig mkfontscale(CentOS/RHEL)或 sudo apt install -y fontconfig fonts-dejavu-core(Debian/Ubuntu/UOS)。
2、创建专用字体子目录:执行 sudo mkdir -p /usr/share/fonts/chinese。
3、将下载好的 .ttf 或 .otf 字体文件(如 simsun.ttc、msyh.ttc、FZKai-Z03.ttf)复制进该目录:执行 sudo cp /path/to/*.ttf /usr/share/fonts/chinese/。
4、设置字体目录权限:执行 sudo chmod -R 755 /usr/share/fonts/chinese。
5、更新字体缓存:执行 sudo fc-cache -fv。
二、用户级字体安装(仅当前用户可用)
适用于无 root 权限或希望避免影响其他用户的场景,字体文件存放于用户主目录下,LibreOffice 启动后会自动扫描该路径。
1、创建用户本地字体目录:执行 mkdir -p ~/.local/share/fonts。
2、复制字体文件至该目录:执行 cp /path/to/*.ttf ~/.local/share/fonts/。
3、赋予读取权限:执行 chmod 644 ~/.local/share/fonts/*.ttf。
4、刷新用户级字体缓存:执行 fc-cache -fv。
三、通过 LibreOffice 内置字体设置添加路径
当字体已存在于非标准路径(如自定义挂载点或网络位置)时,可手动告知 LibreOffice 字体所在位置,使其纳入可用字体列表。
1、启动 LibreOffice Writer 或任意组件。
构建并调试跨Office自动化流程,实现Word、Excel、PowerPoint之间的内容迁移,使用Open XML、VBA、python-docx、openpyxl、py...
2、点击菜单栏 工具 → 选项 → LibreOffice → 字体。
3、勾选 “使用替换表”,在下方表格中点击 “添加” 按钮。
4、在弹出窗口中,点击 “字体路径” 标签页,再点击 “添加”。
5、浏览并选择包含 .ttf/.otf 文件的目录(例如 /home/username/myfonts),确认后点击确定。
四、验证字体是否成功加载
安装完成后需确认字体已被系统识别且 LibreOffice 可调用,避免因缓存未更新或路径错误导致无效。
1、在终端中执行 fc-list :lang=zh | grep -i "kai\|song\|hei\|fangzheng",检查是否列出目标中文字体名称。
2、重新启动 LibreOffice Writer,打开 格式 → 字体 下拉菜单,滚动查找新安装字体名称(如“方正楷体_GBK”、“微软雅黑”)。
3、新建空白文档,输入中文,从字体下拉框中选择该字体,观察文字是否正常渲染而非方框或虚线。
五、处理 LibreOffice 无界面环境下的字体缺失问题
在服务器端使用 soffice --headless 进行文档转 PDF 或批量处理时,若输出含中文内容出现乱码或方块,说明 headless 模式未正确加载字体,需确保字体已部署并缓存生效。
1、确认已执行 fc-cache -fv,且无报错信息。
2、检查 soffice 进程运行用户是否与字体安装用户一致(如以 root 安装但以 nobody 运行,则需系统级安装)。
3、运行转换命令前,显式指定字体路径(部分版本支持):执行 soffice --headless --convert-to pdf --outdir /tmp /tmp/test.docx --font-dir /usr/share/fonts/chinese。
4、若仍失败,可在转换前临时设置环境变量:export FONTCONFIG_PATH=/etc/fonts 并再次执行转换命令。










