GhostScript字体问题

时间:2009-10-26 16:27:19

标签: ghostscript

我在Windows XP上运行GPL Ghostscript 8.70(2009-07-31)。我有大约100个PDF文件,我试图通过GS运行,但我在两个不同客户的两个独立文件组中遇到与字体相关的问题。我不确定这些问题是否相关。以下是我收到的两个错误:

    Loading Courier font from C:\Program Files\gs\fonts/cour.ttf... 2343384 986555 13583240 12261829 3 done.
    Using CourierNewPSMT font for Courier.
    Error: /rangecheck in --get--

Can't find CID font "Arial".
Substituting CID font /Adobe-Identity for /Arial, see doc/Use.htm#CIDFontSubstitution.
The substitute CID font "Adobe-Identity" is not provided either. Will exit with error.
Error: /undefined in findresource

我已经尝试过使用fontmap和cidfmap我能想到的一切。那里有人有解决方案吗?

2 个答案:

答案 0 :(得分:1)

取自Ghostscript Bug Report

首先,我尝试编辑cidfmap文件,在那里添加以下行:

/Arial-BoldMT           << /FileType /TrueType /Path 
(C:/WINDOWS/Fonts/ARIALBD.TTF)  /SubfontID 0  /CSI [(Unicode) 0] >> ;
/Arial-ItalicMT         << /FileType /TrueType /Path 
(C:/WINDOWS/Fonts/ARIALI.TTF)  /SubfontID 0  /CSI [(Unicode) 0] >> ;
/ArialMT                << /FileType /TrueType /Path 
(C:/WINDOWS/Fonts/arial.ttf)  /SubfontID 0  /CSI [(Unicode) 0] >> ;
/TimesNewRomanPSMT      << /FileType /TrueType /Path 
(C:/WINDOWS/Fonts/timesi.ttf)  /SubfontID 0  /CSI [(Unicode) 0] >> ;

这将允许文档正确呈现但符号不可读,我尝试使用编码设置,但没有运气,显示相同的不可读符号。

然后我定义了一个小字典:

/tempfontsdict 1 dict def tempfontsdict 
begin 
 /Arial-BoldMT       (C:/WINDOWS/Fonts/ARIALBD.TTF)  def
 /Arial-ItalicMT     (C:/WINDOWS/Fonts/ARIALI.TTF)  def 
 /ArialMT            (C:/WINDOWS/Fonts/arial.ttf)  def 
 /TimesNewRomanPSMT  (C:/WINDOWS/Fonts/timesi.ttf)  def 
End

并更改了pdf_font.ps:

       dup /FontFile knownoget not {
          dup /FontFile2 knownoget not {
            dup /FontFile3 knownoget not {
                %//null                 

    +           dup /FontName get 
    +           /tempFontName exch def
    +           tempfontsdict tempFontName known {
    +               dup /FontName get (Custom font change:) 
print == 
    +               tempfontsdict tempFontName get
    +               /tempFontFile exch def          

    +               dup /FontFile3 << /F tempFontFile >> 
put                      
    +               dup /FontFile3 get
    +           } {
    +               //null
    +           } ifelse                
            } if
          } if
        } if

这解决了这个问题,但对于这个问题看起来并不是一个好的解决方案。

答案 1 :(得分:0)

遇到同样的问题。 解决了从包管理器中的gs 8.70到https://ghostscript.com/download/gsdnld.html提供的gs 9.20(AGPL发布)的更改