2009-10-26 4 views
2

Windows XP에서 GPL Ghostscript 8.70 (2009-07-31)을 실행 중입니다. GS를 통해 실행하려고 시도한 약 100 개의 PDF 파일이 있지만 두 개의 서로 다른 고객의 파일 두 개의 개별 그룹에서 글꼴 관련 문제가 있습니다. 문제가 관련 될 수 있는지 확실하지 않습니다. 다음은 내가받은 두 가지 오류입니다.GhostScript 글꼴 문제

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을 사용하여 생각한 모든 것을 시도했습니다. 거기에 해결책이있는 사람이 있습니까?

답변

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] >> ; 

을, I가 시도 인코딩 설정은 있지만 행운은 없으며 읽을 수없는 동일한 기호가 표시됩니다.

은 그 때 나는 작은 사전 정의합니다 :

/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 

이 문제를 해결하지만, 문제에 대한 좋은 해결책처럼 보이게하지 않습니다.