GhostScriptフォント
-
12-10-2019 - |
質問
WindowsボックスからPDFファイルをレンダリングするGhostScriptを取得しようとしています。 PDFファイルはComicsAnsmsフォントを使用します。 Windows7ボックスからcomic.ttfファイルを/usr/share/ghostscript/fontsディレクトリにコピーしました。この行を含む同じディレクトリにfontmapファイルを作成しました。
/ComicSansMS (comic.ttf) ;
私が言うことができるように、これにもかかわらずフォントは見つかりません。テキストは非常に不十分に出ており、いくつかの小さなフォントサイズは、あるべきサイズの半分のサイズになります。 Access TimeとStraceは、FontMapファイルが読み取られていることを示していますが、Fontファイル(comic.ttf)にはまったくアクセスされていません。エラーメッセージはありません:
hope 78$ gs cards-01.pdf
GPL Ghostscript 9.00 (2010-09-14)
Copyright (C) 2010 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 1.
Page 1
>>showpage, press <return> to continue<<
GSコマンドラインで-dfapidebugを使用する場合、次のことがわかります。
hope 74$ gs -dFAPIDEBUG -I/usr/share/ghostscript/fonts cards-01.pdf
GPL Ghostscript 9.00 (2010-09-14)
Copyright (C) 2010 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 1.
Page 1
FAPIhook --nostringval--
Trying to render the font Font --nostringval-- ( aliased from ComicSansMS ) with FAPI...
Font --nostringval-- ( aliased from ComicSansMS ) is being rendered with FAPI=FreeType
FAPIhook --nostringval--
Font --nostringval-- ( aliased from ComicSansMS ) is mapped to FAPI=FreeType
FAPIhook RVJCAL+SymbolMT
Trying to render the font Font RVJCAL+SymbolMT with FAPI...
Font RVJCAL+SymbolMT is being rendered with FAPI=FreeType
FAPIhook RVJCAL+SymbolMT
Font RVJCAL+SymbolMT is mapped to FAPI=FreeType
FAPIhook HYLUQF+ComicSansMS
Trying to render the font Font HYLUQF+ComicSansMS with FAPI...
Font HYLUQF+ComicSansMS is being rendered with FAPI=FreeType
FAPIhook HYLUQF+ComicSansMS
Font HYLUQF+ComicSansMS is mapped to FAPI=FreeType
>>showpage, press <return> to continue<<
当然のことながら、私がこれで最も重要な上記の線は次のとおりです。
Font --nostringval-- ( aliased from ComicSansMS ) is being rendered with FAPI=FreeType
「GS -H」は、フォントディレクトリが実際に検索パスにあることを示しています。
hope 77$ gs -h
GPL Ghostscript 9.00 (2010-09-14)
[ ... ]
Search path:
/usr/share/ghostscript/9.00/Resource/Init :
/usr/share/ghostscript/9.00/lib :
/usr/share/ghostscript/9.00/Resource/Font :
/usr/share/ghostscript/fonts : /usr/share/fonts/Type1 : /usr/share/fonts
FontMapファイルでのフォーマットの順列をいくつか試しました。
(Comic Sans MS) (comic.ttf) ;
(ComicSansMS) (comic.ttf) ;
/Comic Sans MS (comic.ttf) ;
/ComicSansMS /comic.ttf ;
私は自分の元のものが正しいものであると確信していますが、私は必死になっていました。 :P
どんな助けも大歓迎です。前もって感謝します。
解決 2
遅れた後、私はこの問題に戻ってきました。虫眼鏡でさらに調査すると、問題は私が最初に思ったものとは異なります。
テキストは、ドキュメントの一部で間違いなく誤ってレンダリングされています。各文字は小さすぎますが、間隔は奇妙に正しいです。ただし、個々の文字はフォントの正しい形状です。
ディスク上のフォントはアクセスされていませんが、それはフォントがすべてドキュメント内に埋め込まれているためです。この事実は、おそらく元の質問に投稿した出力のGhostscriptの専門家には明らかだったでしょう(「Hyluqf+」プレフィックスはそこの喫煙銃だと思います)が、GhostScriptではあまり働いていません。私のフォントは正しくインストールされ、他のドキュメントは問題なくそれらにアクセスすることができました。
もちろん、これにより、なぜ埋め込まれたフォントが間違ってレンダリングされているのかという疑問が残りますが、それを個別に調査し、別の質問を投稿します。私はPDFファイルが腐敗していないことを主張しています(同じ問題を示す他のいくつかのPDFがあります)が、まだ何が悪いのかわかりません。
@Pipitas:試してくれてありがとう。あなたは確かに私のインストールされているフォントが問題ではないことを確認するのに役立ちました。実際、私がもう一度見た今、あなたはフォントが埋め込まれるかもしれないと優しく提案しましたが、私はそれを見なかったか、それを信じなかった、またはチェックする方法を知りませんでした。
他のヒント
PDFにはcomicsAnsmsフォントが埋め込まれていないと思いますか?
他の2つの可能性も考慮する必要があります。
- PDFファイル
card-01.pdf
どういうわけか破損しています。 (他のPDF視聴者は問題なくそのファイルをレンダリングしていますか?WidnowsのAcrobat Readerでは問題なく表示されますか?) - あなたのfontfile
comic.ttf
どういうわけか破損しています。 (WindowsからLinuxに転送するために使用した方法はどれですか?)
これらの両方のコンポーネントがghostscript+comic.ttfを使用して互いに十分にうまくやっていることを積極的に証明することができます。 作成 PDF(comic.ttfが埋め込まれています):
gs \
-sFONTPATH=/usr/share/ghostscript/fonts \
-o comic-ttf.pdf \
-sDEVICE=pdfwrite \
-g5950x8420 \
-c "200 700 moveto" \
-c "/ComicSansMS findfont 60 scalefont setfont" \
-c "(comic.ttf) show showpage"
Windowsでは、上記のコマンドのこのバリエーションを使用します。
gswin32c.exe ^
-o comic-ttf.pdf ^
-sDEVICE=pdfwrite ^
-sFONTPATH=c:/windows/fonts ^
-g5950x8420 ^
-c "200 700 moveto" ^
-c "/ComicSansMS findfont 60 scalefont setfont" ^
-c "(comic.ttf) show showpage"
私がこれをするとき、私はわかります:
gswin32c.exe ^
-o comic-ttf.pdf ^
-sDEVICE=pdfwrite ^
-sFONTPATH=c:/windows/fonts ^
-dHaveTrueTypes=true ^
-g5950x8420 ^
-c "200 700 moveto" ^
-c "/ComicSansMS findfont 60 scalefont setfont" ^
-c "(comic.ttf) show showpage"
GPL Ghostscript 9.00 (2010-09-14)
Copyright (C) 2010 Artifex Software, Inc. All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Scanning c:/windows/fonts for fonts... 423 files, 255 scanned, 240 new fonts.
Loading ComicSansMS font from c:/windows/fonts/comic.ttf... 3343720 1813337 2926116 1611207 1 done.
そして私の出力PDF comic-ttf.pdf
大丈夫そうで、comic.ttfフォントが埋め込まれています。
これがあなたのためにも機能する場合、あなたのghostscriptとあなたのcomic.ttfは大丈夫ですが、あなたのpdfファイル cards-01.pdf
ではありません。