PDF 渲染器如何以及为何替换字符

PDF 渲染器如何以及为何替换字符

如果你看一下https://www.adobe.com/content/dam/acom/en/devnet/font/pdfs/5176.CFF.pdf第 6 页提到了第二点,Predefined Encodings 37但这句话的后记是:

BT
/F4 1 Tf
9.5 0 0 9.5 210 664.663 Tm
(Appendix B) Tj
1.2632 -1.3158 TD
-0.0002 Tc
-0.0021 Tw
(PredeÞned Encodings) Tj
ET

为什么“fi”被替换为þ

答案1

源 PDF:http://download.microsoft.com/download/8/0/1/801a191c-029d-4af3-9642-555f6fe514ee/cff.pdf

压缩内容流中使用的实际字符代码是 0xDE。所选文本编辑器中显示的字符代码可能有所不同。

BT
/F4 1 Tf
9.5 0 0 9.5 210 664.663 Tm
(Appendix B)Tj
1.2632 -1.3158 TD
-0.0002 Tc
-0.0021 Tw
(PredeÞned Encodings)Tj
ET

我们有一个字符代码,现在字体是什么?/F4带我们到Obj 4322,这是一个非嵌入的简单字体(单字节编码),带有MacRomanEncoding

此编码在 PDF 标准附录中定义Latin character set and encodings

请注意,这些值是八进制的,因此0xDEo336查看 MAC 列,我们发现它是连字符“fi” U+FB01

为什么“fi”被替换为þ?

不是的,“þ”实际上是八进制字符代码o336,与 PDF MacRomanEncoding 结合是连字符“fi”。如果您有支持 PDF MacRomanEncoding 的文本编辑器,您将看到连字符。

相关内容