1

次のヘッダーを持つポストスクリプトファイルがあるとします

%!PS-Adobe-3.0

ファイルで使用されているすべてのフォントを一覧表示したいと思います。出力は完全である必要はありませんが、使用されているフォントへのすべての参照を取得する必要があります。フォントにはさまざまな種類があり、フォントがポストスクリプトファイルに埋め込まれている場合と埋め込まれていない場合があることを認識しています。

私の現在の最善のアイデアは、フォントケースという単語を無差別にgrep /検索して、そこから移動することです。

  • これですべてのフォント参照を取得できますか?
  • これを達成するためのより良い方法はありますか?

私は開発目的で.NET/C#を使用する傾向がありますが、どのような解決策でもありがたいです。

ありがとう、

バーナード

更新:lhfの回答は問題を解決しました。フォーマットと長さの制約により、彼の推奨事項に基づいて実用的な使用例を追加しています。

.cmdファイルに保存してコマンドプロンプトから実行できるWindowsバッチファイル:

REM Prerequisites: 
REM - GPL Ghostscript 8.64 @ http://pages.cs.wisc.edu/~ghost/doc/GPL/gpl864.htm
REM - pdffonts @ 3.02pl4 win32 download @ http://www.foolabs.com/xpdf/download.html

REM Add directories to path, contains ps2pdf and its dependency gswin32c.exe
SET PATH=%PATH%;C:\Program Files\gs\gs8.64\lib;C:\Program Files\gs\gs8.64\bin
REM Add pdffonts directory to path
SET PATH=%PATH%;c:\temp\path-toxpdf-3.02pl4-win32

REM Convert postscript file to pdf file
call ps2pdf input.ps temp.pdf

REM list pdf file fonts
call pdffonts temp.pdf

サンプル出力:

name                                 type              emb sub uni object ID 
------------------------------------ ----------------- --- --- --- ---------
DQRDAA+BCC128Medium-Identity-H       CID TrueType      yes yes no      21  0
MIAVUG+Verdana-Identity-H            CID TrueType      yes yes no      13  0
BKNKQN+Verdana-Identity-H            CID TrueType      yes yes no      10  0
4

3 に答える 3

2

ファイルをpdfに変換し、ある場合はpdffontsを使用します。

PSプログラミングに興味がある場合は、findfont以外のほとんどのものを無視する模擬PSインタープリター(PS内)を実行できます。

于 2010-04-26T01:12:05.053 に答える
1

PostScript ファイルがPostScript Language Document Structuring Conventions Specificationに準拠している場合は、次の文字列で始まる PostScript コメントを探すことができます。

%%DocumentNeededResources:
%%DocumentSuppliedResources:
%%DocumentFonts:
%%DocumentNeededFonts:
%%DocumentSuppliedFonts:
于 2010-04-27T13:01:15.443 に答える
0

次の正規表現を試してください。

@"/.*?\sfindfont"

それはあなたにいくつかの余分なものを与えますが、そこからそれで遊ぶことができます.

于 2010-07-08T19:24:53.427 に答える