2

WindowsXPでGPLGhostscript8.70(2009-07-31)を実行しています。GSで実行しようとしたPDFファイルは約100個ありますが、2つの異なる顧客からの2つの別々のファイルグループでフォント関連の問題が発生しています。問題が関連している可能性があるかどうかはわかりません。私が受け取る2つのエラーは次のとおりです。

    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で考えられるすべてのことを試しました。誰かが解決策を持っていますか?

4

2 に答える 2

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

これで問題は解決しましたが、問題の適切な解決策とは思えません。

于 2010-05-05T19:37:31.747 に答える