ARTICLE · 1163999
统信 UOS 里 PDF 数字变成"口口"?一招彻底解决
统信 UOS 里 PDF 数字变成"口口"?一招彻底解决
一、问题现象
把电脑换成统信 UOS 后,用 JOPDF 打开一些公文 PDF,出现了这样的画面:
汉字都能正常显示,唯独数字全部变成方框——"口口口口年口口月口口日",11 位电话号码成了一眼"口口口口口口口口口口口"。

换 WPS 或浏览器打开同一个文件,数字又完全正常。
既不是文件坏了,也不是软件坏了,而是字体问题。
二、原因:字体没嵌入,软件又找不到
这类公文 PDF 在排版时,数字通常用的是 Times New Roman、Arial 这类西文字体。生成 PDF 的单位没有把字体"嵌入"文件,只是在文件里写了一句"这里请用 Times New Roman 显示"。
于是打开这个 PDF 的软件,就得自己在电脑里找一款 Times New Roman 来替它显示:
- WPS、浏览器等
:走系统字体机制,能找到我们装在用户目录( ~/.local/share/fonts)里的字体,所以显示正常; - JOPDF
:只扫描系统字体目录( /usr/share/fonts等),不去读用户字体目录。找不到对应字体,数字就只能显示成方框。
这也解释了一个常见误区:很多人把字体拷进用户字体目录后,JOPDF 依然不显示——因为放的目录不是它要找的那个。
三、解决办法:把字体装到系统目录
在终端执行下面这一行(整行复制,终端里用 Ctrl+Shift+V 粘贴后回车),中途输入一次管理员密码:
sudo mkdir -p /usr/share/fonts/truetype/winfonts && sudo cp "$HOME/.local/share/fonts/Times New Roman/"*.ttf "$HOME/.local/share/fonts/Arial/"*.ttf /usr/share/fonts/truetype/winfonts/ && sudo chmod 644 /usr/share/fonts/truetype/winfonts/* && sudo fc-cache -fv && fc-list | grep -i "Times New Roman"最后一行如果能列出 Times New Roman,说明安装成功。
然后完全退出 JOPDF(别忘了后台进程)再重新打开 PDF,数字就正常了。此后所有同类公文 PDF 都能直接显示。
四、更省事:一次把所有字体都装好
公文里"漏装"的字体不止 Times New Roman,仿宋_GB2312、楷体_GB2312、黑体、宋体都可能遇到。与其一个个拷,不如把平时下载的字体一条命令全装进去:
sudo mkdir -p /usr/share/fonts/truetype/winfonts && sudo find "$HOME/.local/share/fonts" "$HOME/.fonts" -maxdepth 3 -type f \( -iname "*.ttf" -o -iname "*.ttc" -o -iname "*.otf" \) -exec cp -f {} /usr/share/fonts/truetype/winfonts/ \; && sudo chmod 644 /usr/share/fonts/truetype/winfonts/* && sudo fc-cache -fv它会把用户字体目录下的所有字体复制到系统字体目录并刷新缓存,之后 JOPDF 基本不会再缺字。
再进一步,做成脚本,以后一行调用。把下面内容保存为 安装字体.sh(放在桌面即可):
#!/bin/bash # 安装字体.sh —— 把用户字体目录里的字体装到系统字体目录 sudo mkdir -p /usr/share/fonts/truetype/winfonts sudo find "$HOME/.local/share/fonts" "$HOME/.fonts" -maxdepth 3 -type f \ \( -iname "*.ttf" -o -iname "*.ttc" -o -iname "*.otf" \) \ -exec cp -f {} /usr/share/fonts/truetype/winfonts/ \; sudo chmod 644 /usr/share/fonts/truetype/winfonts/* sudo fc-cache -fv echo "安装完成,请完全退出后重新打开 JOPDF"以后遇到重装系统、换新电脑,终端里执行一句 bash ~/Desktop/安装字体.sh,一次性搞定,不用再记命令。