我正在使用Ubuntu18.04并填写SS-5社会保障管理表格。然而,有些字母的位置是错误的。
3.28.2-1:

Okular 1.3.3 (Ubuntu版本4:17.12.3-0ubuntu1):

xpdf 3.04-7:

mudpdf 1.12.0:

Firefox 59.0.2内置的PDF阅读器:

内置的PDF阅读器的铬65.0.3325.181:

下面是pdffonts的输出:
$ pdffonts ss-5.pdf
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
IHPIKC+ArialMT CID TrueType Identity-H yes yes yes 824 0
ArialMT TrueType WinAnsi no no no 826 0
Arial-BoldMT TrueType WinAnsi no no no 828 0
CourierStd Type 1 WinAnsi no no no 145 0
Helvetica Type 1 WinAnsi no no no 197 0
MyriadPro-Regular Type 1 WinAnsi no no no 198 0
ZapfDingbats Type 1 ZapfDingbats no no no 199 0我已经安装了ttf-mscorefonts-installer和poppler-data软件包。
以下是我的问题:
更新: bug报告:
编辑:@xiota的解决方案功能非常完善。但是,在poppler中,这仍然是一个bug,因为当PDF查看器由于原始字体没有嵌入而替换不同的字体时,XFA表单中的间距应该与替代字体匹配,而不是原始字体。有一个拉请求来修复目前正在进行的这个问题。Poppler (@haxtibal)在一个不同的错误报告中描述了这种方法:
策略是,如果没有嵌入字体,则收集并使用来自实际替代字体的度量,而不是PDF字体描述符或硬编码字体的度量。
发布于 2020-10-24 14:56:54
这个问题应该是Ubuntu下一个版本中的修补 (21.04)。还有一个上游的fontconfig合并请求#128挂起。
您所观察到的The问题是由不正确的字体替换引起的。我的计算机上的 、CourierStd和ZapfDingbats被替换为Ubuntu. ,这显然不会正确地呈现。

要纠正这一点:
fonts-urw-base35. This应该更正Dingbat和大多数其他pdf字体替换。然而,CourierStd替换并不是固定的,因为它不在配置文件中。~/.config/fontconfig/conf.d/10-pdf-aliases.conf: <别名binding=“同”> Courier Std <D8>速递 Courier StdD8><D8>单步 然后运行fc-cache (可能不需要)。您可以根据需要向文件中添加其他字体别名。另请参阅:
https://askubuntu.com/questions/1031235
复制相似问题