1

我正在尝试使用 Ghostscript 9.10 将 pdf 文档转换为 tiff。pdf 中嵌入了 TrueType (CID) Arial 和 Calibri 字体。

我正在使用的命令行如下:

gswin32.exe -dSAFER -dBATCH -r200 -sDEVICE= tifflzw -sOutputFile=d:\temp\tmp.tiff D:\Temp\test.pdf

转换成功,但 Calibri 部分出现损坏

我尝试将以下不同组合添加到 cidfmap:

/Calibri << /Path (c:/windows/Fonts/Calibri.ttf) /SubfontID 0 /FileType /TrueType /CSI [(Identity-H) 0] >> ;
/Calibri << /Path (c:/windows/Fonts/Calibri.ttf) /SubfontID 0 /FileType /TrueType /CSI [(Unicode) 0] >> ;
/Calibri << /Path (c:/windows/Fonts/Calibri.ttf) /SubfontID 0 /FileType /TrueType /CSI [(Identity) 0] >> ;

但是当我运行对 cidfmap 进行更改的命令时,我得到以下信息

**** Warning: can't process font stream, loading font by the name.
**** Error reading a content stream. The page may be incomplete.
**** File did not complete the page properly and may be damaged.

嵌入的 arial 字体似乎可以毫无问题地处理 - 并且在 tiff 中正确显示。

Can't find CID font "Arial".
Attempting to substitute CID font /Adobe-Identity for /Arial, see doc/Use.htm#CI
DFontSubstitution.
The substitute CID font "Adobe-Identity" is not provided either. attempting to u
se fallback CIDFont.See doc/Use.htm#CIDFontSubstitution.
Loading a TT font from %rom%Resource/CIDFSubst/DroidSansFallback.ttf to emulate
a CID font Adobe-Identity ... Done.

有人知道如何处理嵌入的 calibri 字体吗?

4

1 回答 1

1

如果字体嵌入在 PDF 文件中,那么您不需要提供字体映射...正在显示的消息告诉您未找到 Arial 而是使用 DroidSansFallback。

除非您使用 -I 开关运行 Ghostscript 以便它实际处理 cidfmap 文件,否则向 cidfmap 添加条目将没有任何用处。默认情况下,Ghostscript 使用 ROM 文件系统,所有支持文件都编译成可执行文件。

大概你必须这样做才能得到错误。无论如何,我建议的第一件事是从命令行中删除 -dSAFER,因为这将阻止 Ghostscript 打开磁盘上的大多数文件,尤其是您要使用的字体文件。

于 2013-10-18T10:53:39.640 回答