统信uos中pdf中文乱码需按序修复:一、安装fonts-wqy-microhei等四类中文字体并sudo fc-cache -fv刷新缓存;二、换用okular或qpdfview并启用系统字体渲染;三、若仅打印乱码,需调整cups postscript配置并重启服务。

在统信UOS中打开PDF文档时中文显示为方框、问号或字符错位,问题根源集中在系统字体缺失、阅读器fallback机制失效、CUPS打印解析异常三处,必须按顺序排查并修复,跳过任一环节都可能导致乱码持续存在。
安装并刷新中文字体缓存
PDF渲染依赖fontconfig对Unicode汉字的回退映射能力,若SimSun、Noto Sans CJK等基础字体未注册或缓存陈旧,所有阅读器都会失效。
打开终端(Ctrl+Alt+T),执行以下命令安装四类关键字体:
sudo apt update && sudo apt install fonts-wqy-microhei fonts-wqy-zenhei fonts-source-han-sans-cn ttf-wps-fonts
【ttf-wps-fonts是唯一含仿宋_GB2312、楷体_GB2312等GB2312标准字体的官方包,缺此一项,政府公文类PDF必现方框】
手动补充Windows核心字体(如已从Windows拷贝):
sudo cp ~/Desktop/simsun.ttc /usr/share/fonts/truetype/ && sudo chmod 644 /usr/share/fonts/truetype/simsun.ttc
强制重建完整字体缓存,必须以root权限运行:
sudo fc-cache -fv
验证是否加载成功:
fc-list :lang=zh | grep -i "sim|source|wqy"
更换PDF阅读器并启用系统字体渲染
统信UOS默认Evince阅读器对非嵌入式CJK字体支持极弱,切换为Okular或qpdfview可绕过大部分乱码场景。
方法一:安装Okular(KDE官方阅读器,内置字体嵌入检测)
sudo apt install okular
启动后进入设置→字体→勾选“始终使用系统字体渲染PDF文本”
方法二:安装qpdfview(轻量Qt应用,对GB18030编码识别率高)
sudo apt install qpdfview
启动后进入编辑→首选项→渲染→启用“启用字体子集回退”
方法三:安装Foxit Reader for Linux(商业版,原生支持SimSun映射)
下载.deb包后执行:sudo dpkg -i foxitreader_*.deb && sudo apt --fix-broken install
修复CUPS打印阶段的字体映射错误
若仅在打印预览或实际输出时出现乱码,而屏幕查看正常,则问题锁定在CUPS过滤链未正确调用fontconfig或Ghostscript未启用CIDFont支持。
第一步:检查当前CUPS默认打印机是否启用PostScript驱动
lpstat -p | grep -i "postscript\|ps"
第二步:编辑CUPS PostScript PPD文件(路径通常为/etc/cups/ppd/XXX.ppd)
sudo nano /etc/cups/ppd/$(lpstat -p | awk '{print $2}' | head -n1).ppd
第三步:在文件末尾添加以下两行(若不存在):
*cupsFilter: "application/vnd.cups-postscript 0 foomatic-rip"
*cupsFilter: "application/pdf 0 pdftops"
第四步:重启CUPS服务使配置生效:
sudo systemctl restart cups
用pdfcpu重置PDF字体嵌入信息
当PDF本身未嵌入字体且系统又无法回退时,pdfcpu可强制将缺失字体替换为系统可用字体并重新生成PDF。
安装pdfcpu:
sudo apt install golang && go install github.com/pdfcpu/pdfcpu/cmd/pdfcpu@latest
将原始PDF中的字体引用重映射为系统已安装的思源黑体:
pdfcpu font embed -u -f "Source Han Sans CN" input.pdf output.pdf
该操作会生成新PDF,原始文件不受影响;若提示“font not found”,说明Source Han Sans CN未被fontconfig识别,请先执行fc-list确认。











