我正在尝试使用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.
有人知道如何处理嵌入式校准字体吗?
答案 0 :(得分:1)
如果字体嵌入在PDF文件中,那么您不需要提供字体映射...显示的消息告诉您Arial找不到 NOT ,并且DroidSansFallback正在反而用了。
向cidfmap添加条目不会有任何用处,除非使用-I开关运行Ghostscript,以便它实际处理cidfmap文件。默认情况下,Ghostscript使用ROM文件系统,所有支持文件都编译为可执行文件。
据推测,你必须这样做才能得到错误。无论如何,我建议的第一件事是从命令行中删除-dSAFER,因为这会阻止Ghostscript打开磁盘上的大多数文件,特别是你想要使用的字体文件。