我试图将pdf文件转换为图片。
命令:gs -sDEVICE = pngalpha -sOutputFile = cover.png -r144 myfile.pdf
输出:
Can't find CID font "MyStrangeNonEmbeddedFont".
Attempting to substitute CID font /Adobe-Identity for /MyStrangeNonEmbeddedFont, see doc/Use.htm#CIDFontSubstitution.
The substitute CID font "Adobe-Identity" is not provided either. attempting to use fallback CIDFont.See doc/Use.htm#CIDFontSubstitution.
Loading a TT font from /some/path/DroidSansFallback.ttf to emulate a CID font Adobe-Identity ... Done.
字体已成功替换为DroidSansFallback.ttf,但所有字符都不正确。例子:
'C' is substituted with '<'
'6' is substituted with '>'
'B' is substituted with '@'
'D' is substituted with 'B'
是否可以修复它?
答案 0 :(得分:0)
评论太长了,而是作为答案添加。
这就是为什么PDF规范强烈建议嵌入CIDFonts。
字符代码 - &gt; CID - &gt;字形描述是规范的一个复杂区域,比常规字体更复杂。
要获得正确的唯一方法是使用未嵌入的原始字体。 “修复”这个最好的选择是嵌入字体并制作一个新的PDF文件。
如果您不能这样做,那么您可以获取字体并向cidfmap添加特定条目。
如果失败那么您可以尝试编辑PDF文件中的CMap(CMap将字符代码映射到CID)或文档中的字符代码,以匹配您可用的任何字体(这可能是很多工作)。
CIDSystemInfo的排序'可能'给你一些线索,你可以使用注册表和排序来确定CID与实际字形的关系。
如果您有一个真正的CIDFont用作替代可能能够操纵字形的CID,但这将很难。如果您使用TrueType字体作为CIDFont的替代品,则无法更改Ghostscript将为该CIDFont生成的CMap。