温馨提示×

ubuntu liboffice字体显示异常

小樊
44
2025-12-22 11:31:28
栏目: 智能运维

Ubuntu 下 LibreOffice 字体显示异常排查与修复

一、先快速定位问题

  • 在 LibreOffice 中打开「工具 > 选项 > LibreOffice > 字体替换」,查看是否存在将中文字体(如宋体/SimSun、微软雅黑/MSYH)替换为“DejaVu Sans”等通用字体的规则;若有,先取消或改为合适的映射(如映射为Noto Sans CJKWenQuanYi Micro Hei)。
  • 在终端检查字体是否可被系统识别:
    • 列出已安装中文字体:fc-list :lang=zh
    • 检查具体字体文件:fc-match "SimSun"fc-match "Noto Sans CJK SC"
  • 打开文档后,用「格式 > 字符 > 字体」确认实际应用的字体名是否与预期一致(有时文档内嵌了替换规则)。
  • 若导出 PDF 仍异常,检查 LibreOffice 的 PDF 导出选项是否嵌入了所用字体(见下文“导出 PDF 时嵌入字体”)。

二、常见原因与对应修复

  • 系统缺少常用中文字体
    • 安装开源中文字体:sudo apt-get install fonts-noto-cjk fonts-wqy-zenhei
    • 若文档依赖 Times New Roman 等常见西文字体:sudo apt-get install ttf-mscorefonts-installer,安装后执行 sudo fc-cache -f -v 刷新缓存,再用 fc-match "Times New Roman" 验证。
  • 字体缓存未更新
    • 刷新字体缓存:sudo fc-cache -f -v,然后重启 LibreOffice。
  • LibreOffice 未识别到新字体
    • 将字体放入用户级字体目录:~/.local/share/fonts(或 ~/.fonts),再执行 fc-cache -f -v
  • 全局安装 Windows 字体影响系统优先级(不推荐)
    • simsun.ttc、msyh.ttf、msyhbd.ttf 等复制到 /usr/share/fonts 会全局生效,可能让 宋体 优先级过高,导致界面与文档出现“点阵宋体”等异常。若已操作,建议移除或降低优先级,改为用户级安装并重建缓存。
  • 字体替换规则不当
    • 在「字体替换」中删除或修正错误映射,避免把中文映射为不支持 CJK 的字体。

三、稳妥的字体安装与配置方案

  • 用户级安装(推荐,避免影响系统全局设置)
    1. 仅拷贝你需要的字体到用户目录:~/.local/share/fonts(若目录不存在请先创建)。
    2. 刷新缓存:fc-cache -f -v
    3. 如需让 LibreOffice 专用,也可放入 LibreOffice 用户字体目录:~/.config/libreoffice/4/user/fonts(版本号可能不同,如 6/7/24.2 等,按实际目录放置),然后重启 LibreOffice。
  • 系统级安装(谨慎)
    1. 拷贝字体到 /usr/share/fonts,设置权限:sudo chmod 644 /usr/share/fonts/*.ttf(或 .ttc)。
    2. 刷新缓存:sudo fc-cache -f -v
    3. 注意版权与优先级,避免把 宋体 等设为全局优先导致界面与文档渲染异常。
  • 字体选择与优先级
    • 中文优先选用:Noto Sans CJK(开源、覆盖全面)、WenQuanYi Micro Hei(文泉驿微米黑)。
    • 西文常用:DejaVu Sans / Liberation Sans、以及已安装的 Times New Roman(通过 mscorefonts-installer)。

四、导出 PDF 时嵌入字体与服务器端渲染

  • 在 LibreOffice 导出 PDF 时勾选「嵌入字体」(PDF 选项),避免在其他设备上出现缺字或替换。
  • 使用 JODConverter 或无头服务渲染时,确保 LibreOffice 能访问到所用字体:
    • 将字体放入系统目录(/usr/share/fonts)或 LibreOffice 用户目录(~/.config/libreoffice/.../user/fonts),并执行 fc-cache -f -v
    • 若仍异常,检查 LibreOffice 安装路径配置是否正确(不要包含 /program 子目录),并重启服务。

五、一键检查与修复清单

  • 安装常用字体:sudo apt-get install fonts-noto-cjk fonts-wqy-zenhei ttf-mscorefonts-installer
  • 刷新字体缓存:sudo fc-cache -f -v
  • 验证:fc-list :lang=zh | grep -i "noto\|wqy\|simsun\|msyh"fc-match "Times New Roman"
  • 检查 LibreOffice「字体替换」规则,删除错误映射
  • 必要时将字体放入 ~/.local/share/fonts~/.config/libreoffice/.../user/fonts 并重启 LibreOffice
  • 导出 PDF 时勾选「嵌入字体」

以上步骤覆盖了缺字、替换、优先级与导出嵌入等常见场景,通常可恢复中文与西文的正常显示与打印

0