Adobe Reader中嵌入的TrueType字体

时间:2012-10-23 16:48:57

标签: pdf fonts pdf-generation true-type-fonts adobe-reader

我根据Adobe手册在pdf文件中嵌入了TrueType字体:

7 0 obj 
<<
/BaseFont /Arial
/FirstChar 32
/LastChar 126
/Subtype /TrueType
/FontDescriptor 8 0 R
/Widths 59 0 R
/Type /Font
>>

它可以在大多数PDF查看器中完美运行,如Evince,Xournal,PDF Editor等;但它在Adobe Reader XI中不起作用。它根本不显示任何文本(显示图纸)。在PDF属性中,它没有我的嵌入字体。看来,Adobe Reader无法找到嵌入字体。但Adobe Reader与其他PDF查看器的区别是什么。

更新:最初,我从PDF手册复制了文本,非法字符是Unicode减号。这是该文件的更新版本。尽管如此,它并没有显示嵌入字体,而是默认的替代字体。

PDF File

2 个答案:

答案 0 :(得分:3)

可能还有其他问题,但初看起来我可以看到你的字体描述符已损坏:

8 0 obj 
<<
/FontName /Acens
/StemV 105
/Leading 83
/FontFile2 10 0 R
/Ascent 720
/Flags 262178
/XHeight 394
/AvgWidth 478
/Descent −270
/ItalicAngle 0
/StemH 45
/MaxWidth 1212
/MissingWidth 255
/FontBBox [−177 −269 1123 866] <- This guy here does not look very well
/Type /FontDescriptor
/CapHeight 660
>>
endobj 

除了Acrobat之外,你所尝试过的所有读者很可能只是忽略了这个问题,并假设某种“默认”值。

答案 1 :(得分:3)

除了字体描述符损坏之外,FontFile2流字典还不完整:

8 0 obj 
<<
[...]
/FontFile2 10 0 R
[...]
>> 
endobj 
10 0 obj 
<<
/Length 29061
>>
stream 
[...]

根据规范(ISO 32000-1:2008),缺少Length1条目:

  

(Type 1和TrueType字体需要)字节的长度   Type 1字体程序的明文部分,或整个TrueType   字体程序,使用指定的过滤器解码后   流的Filter条目(如果有)。