名前

gs - Ghostscript (PostScript、PDF 言語のインタープリター、プレビューアー)

書式

gs [ options ] [ files ] ... (Unix, VMS)
gswin32c [ options ] [ files ] ... (MS Windows)
gswin32 [ options ] [ files ] ... (MS Windows 3.1)
gsos2 [ options ] [ files ] ... (OS/2)

説明

gs (gswin32c, gswin32, gsos2) コマンドは、 Adobe Systems の PostScript(tm) および Portable Document Format (PDF) 言語のインタープリターである Ghostscript を呼び出します。 gs は "files" を順に読み込んで、 Ghostscript プログラムとして実行します。 その実行を終えたら、 さらに標準入力ストリーム (通常はキーボード) からの入力を読み込みます。 その際には、 各行を個別に解釈しながら、 出力デバイス (ファイルや X11 ウィンドウプレビューなど後述) への出力を行います。 インタープリターが終了するのは、 "quit" コマンドの出現 (ファイル内、 キーボードのいずれかから)、 ファイル終端、 中断シグナル (キーボードからの Control-C 入力など) です。

このインタープリターでは、 数多くのオプションスイッチを受け付けます。 以下では、 その中からいくつか説明しています。 完全な情報については、 使用方法を説明したドキュメントを参照してください。 コマンドライン上において、 スイッチはどこに指定してもよく、 指定以降のファイルすべてに適用されます。 Ghostscipt に -h または -? スイッチをつけて実行すると、 便利なスイッチについての説明がいくつか示されます。 また、 その実行ファイルが識別するデバイスや、 フォントの検索パスも示されます。 Unix 上であれば、 詳細なドキュメントの場所についても示されます。

Ghostscript は、 さまざまな出力デバイスを利用するようにビルドできます。 実行ファイルが取り扱うデバイスを確認するには、 "gs -h" を実行してください。

特定のデバイスを指定しなかった場合、 Ghostscript は普通、 一番初めのデバイスを開いて、 そこに向けて出力を行います。

X11 サポートを含めてビルドされている場合、 デフォルトデバイスが X11 ウィンドウ (プレビュー) に設定されている場合があります。 そうでない場合 ghostscript は通常、 bbox デバイスを利用して、 標準出力に postscript ファイルのサイズを表示します。

したがって、 一覧内の一番初めのものが処理対象としたいものであれば、 以下のコマンドを実行するだけです。

	gs myfile.ps

Ghostscript 内において利用可能なデバイスの一覧を確認することもできます。 それには Ghostscript を実行して、 以下のように入力します。

	devicenames ==

ただし、 結果として出力される一覧の先頭のデバイスが、 "gs -h" で確認したデフォルトデバイスではないこともあります。 第一の出力デバイスとして "AbcXyz" を指定するには、 スイッチに以下を加えます。

	-sDEVICE=AbcXyz

たとえば Epson プリンターへの出力を行うには、 以下のようなコマンドを実行します。

	gs -sDEVICE=epson myfile.ps

"-sDEVICE=" スイッチは、 出力するファイルに対する指定よりも前に指定することが必要です。 またこのスイッチは、 最初に指定されたものだけが有効になります。

またデフォルトデバイスは、 環境変数 GS_DEVICE に指定することができます。 こういった指定方法の優先順位は、 高い方から順に以下となります (Ghostscript では、 高順位に指定されたデバイスを利用します)。

デバイスによっては、 異なる解像度 (密度) をサポートするものがあります。 そういったプリンターの解像度を指定するには "-r" スイッチを利用します。

	gs -sDEVICE=<device> -r<xres>x<yres>

たとえば 9 ピン Epson 互換プリンターに対しては、 以下のようにして低密度 (高速) モードを指定します。

	gs -sDEVICE=epson -r60x72

また高密度 (出力品質の最大化) モードは以下とします。

	gs -sDEVICE=epson -r240x72.

出力デバイスとしてプリンターを選んだ場合、 Ghostscript が出力を送信する先を指定することもできます。 Unix システムの場合、 一時ファイルを指定することが行われます。 たとえばファイル "foo.xyz" に送信するには、 以下のようにスイッチを指定します。

	-sOutputFile=foo.xyz

各ページを個別に出力したい場合があります。 これを行うには、 送信出力先を "foo1.xyz, foo2.xyz, ..." といった複数ファイルにするために、 "-sOutputFile=" スイッチにおいて、 ファイル名テンプレートとして "%d" を含めて指定します。

	-sOutputFile=foo%d.xyz

生成されるファイルには、 1 ページずつが出力されます。 またそのファイルは、 順に番号が振られます。 "%d" の部分は printf の書式指定が可能です。 したがって "%02d" といった指定の仕方もできます。

Unix および MS Windows システムにおいては、 出力をパイプに送信することもできます。 たとえば、 パイプ出力先を "lpr" コマンド (たいていの Unix システムにおいては、プリンターに直接つながります) とするには、 以下のようなオプション指定とします。

	-sOutputFile=%pipe%lpr

なお '%' 文字は MS Windows においては、 コマンドインタープリターがこれを無視しないように、 2 つ重ねて記述する必要があります。

出力内容を標準出力に対して送ることもできます。

	-sOutputFile=-

または以下です。

	-sOutputFile=%stdout%

この場合は、 -q スイッチも合わせて指定することが必要です。 これは Ghostscript が標準出力にメッセージを書き出さないようにするためです。

特定の用紙サイズを指定するには、 以下のようにコマンドラインスイッチを指定します。

	-sPAPERSIZE=<paper_size>

たとえば以下です。

	-sPAPERSIZE=a4

または以下です。

	-sPAPERSIZE=legal

ISO および US 用紙サイズは、 たいてい認識されます。 完全な一覧については、 使用方法を示したドキュメントを参照してください。 あるいは、 初期化ファイル "gs_statd.ps" の中にある定義を参照してください。

Ghostscript は、 PostScript や PDF ファイルの印刷や表示以外にも、 多くの処理を行います。 たとえば、 PostScript (または EPS) ファイルのバウンディングボックスを確認したい場合、 Ghostscript では、 この情報を出力するための特別な "device" が提供されています。

たとえば、Ghostscript に含まれているサンプルファイルを使って、 以下のようにします。

	gs -sDEVICE=bbox golfer.ps

その出力は以下となります。

	%%BoundingBox: 0 25 583 732
	%%HiResBoundingBox: 0.808497 25.009496 582.994503 731.809445

オプション

-- filename arg1 ...

これに続く引数を、 通常どおりファイル名として受け取ります。 そして残りの引数も (スイッチとしての形式を持っていたとしても) すべて受け取って、 ("systemdict" ではなく) "userdict" 内に "ARGUMENTS" という名前で定義します。 これはファイルを処理する に行われるものであって、 その文字列による配列として生成されます。 Ghostscript によるファイル処理が完了すると、 終了してシェルに戻ります。

-Dname=token


-dname=token

"systemdict" 内において、 指定内容に従って名前を定義します。 トークンは、 ただ 1 つのトークンである ("token" オペレーターによって定義される) 必要があり、ホワイトスペースを含めることはできません。

-Dname


-dname

"systemdict" 内の name に対して、 その値を null と定義します。

-Sname=string


-sname=string

"systemdict" 内において、 指定された文字列に対して値を定義します。 これは -d とは異なります。 たとえば -dname=35 は、 以下のプログラム部分と同じです。
/name 35 def
一方で -sname=35 は以下と同じです。
/name (35) def

-P

Ghostscript がライブラリファイルを探す場所を、 第一にカレントディレクトリとします。 Ghostscript はデフォルトでは、 カレントディレクトリを探しに行かないようになっています。 もちろん、 -I においてその先頭に、 明示的にディレクトリ "." を追加していれば別です。 以下の「初期化ファイル」の節、 あるいは配布されている Use.htm を参照して、 検索パスに関する詳しい説明や、 Ghostscript によるファイル検索の方法について確認してください。

-q

静かに起動します。 つまり通常の起動時メッセージを省略します。 これは -dQUIET を指定することと同じです。

-gnumber1xnumber2

-dDEVICEWIDTH=number1 および -dDEVICEHEIGHT=number2 と同じ。 これは、 高さや幅を指定する必要がある (あるいはそれを行うことができる) X11 ウィンドウのようなデバイスのためにあります。

-rnumber


-rnumber1xnumber2

-dDEVICEXRESOLUTION=number1 および -dDEVICEYRESOLUTION=number2 と同じ。 これは、 複数の X, Y 解像度をサポートする、 プリンターのようなデバイスのためにあります。 1 つの値しか指定されなかった場合、 X, Y 両方の解像度に用いられます。

-Idirectories

ライブラリファイルの検索パスの先頭に、 指定されたディレクトリリストを追加します。

-

これは実際のスイッチではありません。 これは Ghostscript がファイルやパイプからの入力を標準入力から受けつけるようにします。 つまりコマンドラインから対話的な入力は行いません。 Ghostscript は end-of-file になるまで標準入力から読み取り、 ファイルの場合と同様に処理実行して、 コマンドラインの処理に戻って続けます。 コマンドラインの処理がすべて終わると、 Ghostscript は対話モードに入ることなく終了します。

なお通常の初期化ファイル "gs_init.ps" は "systemdict" を読み込み専用として扱います。 したがって -D, -d, -S, -s によって定義された名前の値は変更されません (もちろんこれらは、 "userdict" や他の辞書データによって上書きすることができます)。

特別な名前

-dNOCACHE

文字キャッシングを無効にします。 これはデバッグ時に用いることができます。

-dNOBIND

"bind" オペレーターを無効にします。 これはデバッグ時に用いることができます。

-dNODISPLAY

出力デバイスに対する通常の初期化を省略します。 これはデバッグ時に用いることができます。

-dNOPAUSE

プロンプト表示と、 各ページ出力終了時の一時停止を無効にします。 Ghostscipt を起動する別プログラムを利用するようなアプリケーションにとって、 これが必要になる場合があります。

-dNOPLATFONTS

起動されたプラットフォーム (たとえば X ウィンドウ) によって提供されるフォントの利用を無効にします。 プラットフォームのフォントが、 スケーラブルフォントと比べて、 不適切なほどに食い違うと、 これが必要になる場合があります。

-dSAFER

ジョブが処理するファイル操作を制限します。 現在は、 これがデフォルトの操作モードです。

-dWRITESYSTEMDICT

"systemdict" を書き込み可能とします。 特別なユーティリティープログラムがこれを必要としています。 ただし通常の Postscript セキュリティ対策を無効にしてしまうため、 利用をお勧めしません。

-sDEVICE=device

上で述べたように、 初期の出力デバイスとして別のものを選びます。

-sOutputFile=filename

上で述べたように、 初期の出力デバイスとして、 別の出力ファイル (またはパイプ) を選びます。

安全モード (safer mode)

-dSAFER オプションは、 ファイルシステムからアクセスできるファイルやディレクトリを、 関連する環境変数 (GS_LIB など) あるいはコマンドラインパラメーターによってにのみ許可されたものに制限します (詳しくは https://ghostscript.com/doc/current/Use.htm を参照してください)。

SAFER モードは、 現時点にて操作モードのデフォルトになっています。 したがって、 ファイルオープンや制限パラメーターを設定するプログラムの実行が必要な場合は、 コマンドラインオプション -dNOSAFER か、 同じ意味である -dDELAYSAFER の指定が必要となります。

NOSAFER/DELAYSAFER (両者は同じ) を用いて処理実行すると、 セキュリティを低下させることになるため、 デバッグ目的の場合や、 十分に制御できている処理フローにおいて利用することをおすすめします。 逆にそれ以外の目的での利用は行わないでください。

ファイル

Ghostscript の実行時に参照するファイルの多くは、 この実行ファイルがビルドされた際に定められています。 Unix 上では通常、 /usr/local 配下として定められています。 DOS の場合は通常、 C:\GS となります。 ただし特に Ghostscript に加えて GSview もインストールしている場合には、 他の場所になっている場合もあります。 "gs -h" を実行すると、 システム内にある Ghostscript ドキュメントの場所がわかるので、 そこから詳細を確認してください。

/usr/local/share/ghostscript/#.##/*

起動ファイル、ユーティリティー、基本的なフォント設定。

/usr/local/share/ghostscript/fonts/*

追加のフォント定義。

/usr/local/share/ghostscript/#.##/examples/*

Ghostscript デモファイル

/usr/local/share/ghostscript/#.##/doc/*

デバイスドキュメントファイル

初期化ファイル

Ghostscript が初期化ファイル "gs_*.ps"、 フォント関連ファイル、 "run" オペレーターに関するファイルを探し出す際には、 指定されたファイル名を用います。 そこにディレクトリ指定がなかった場合は、 カレントディレクトリを探します。 ファイル検索に失敗して、 さらにファイル名にディレクトリやドライブの指定がなかった場合 (たとえば Unix システムにて "/"、 MS Windows システムにて "\" が含まれていない場合)、Ghostscript は、 以下の順によりディレクトリを検索します。

1.

コマンドライン上に -I スイッチがあれば、 そこに指定されているディレクトリ (以降を参照)。

2.

環境変数 GS_LIB が設定されていれば、 そこに指定されているディレクトリ。

3.

Ghostscript 実行ファイルがビルドされた際の makefile 内にあるマクロ GS_LIB_DEFAULT に指定されたディレクトリ。 gs が Unix 上においてビルドされている場合、 GS_LIB_DEFAULT は通常 "/usr/local/share/ghostscript/#.##:/usr/local/share/ghostscript/fonts" です。 ここで "#.##" は Ghostscript のバージョン番号を表します。

各設定 (GS_LIB_DEFAULT, GS_LIB, -I パラメーター) においては、 ディレクトリを単一指定するか、 複数の場合は ":" で区切って指定します。

環境変数

GS_OPTIONS

コマンドラインオプションより前に処理するオプション文字列。

GS_DEVICE

出力デバイスの指定に用いられます。

GS_FONTPATH

フォント検索を行うパス名。

GS_LIB

初期化ファイルおよびフォントのパス名。

TEMP

一時ファイルが生成される場所。

X リソース

Ghostscript、 より適切に言って X11 ディスプレイデバイスは、 プログラム名 "Ghostscript" 配下の以下のリソースを参照します。

borderWidth

ピクセル単位の境界幅 (デフォルト = 1)。

borderColor

境界色の名前 (デフォルト = black)。

geometry

ウィンドウサイズと配置、 WxH+X+Y (デフォルトは NULL)。

xResolution

1 インチあたりの x ピクセル数 (デフォルトは WidthOfScreenWidthMMOfScreen から算出されます)。

yResolution

1 インチあたりの y ピクセル数 (デフォルトは HeightOfScreenHeightMMOfScreen から算出されます)。

useBackingPixmap

ディスプレイウィンドウの保存のために、 一時保存場所を利用するかどうかを指定します (デフォルト = true)。

リソースの完全な一覧については、 使用方法を説明するドキュメントを参照してください。 Unix 上においてリソースを設定するには、 "~/.Xresources" などのファイルに、 以下のような書式による記述を行います。

	Ghostscript*geometry:	 612x792-0+0
	Ghostscript*xResolution: 72
	Ghostscript*yResolution: 72

そして X サーバーのリソースデータベースに対して、 このリソースをマージします。

	% xrdb -merge ~/.Xresources

関連項目

(上述の) さまざまな Ghostscript ドキュメントファイル。 特に Use.htm

バグ

http://bugs.ghostscript.com/ と、 Usenet ニュースグループの comp.lang.postscript を参照してください。

バージョン

このドキュメントは Ghostscript バージョン 9.56.1 向けに改訂されました。

著者

Ghostscript の主要メンテナーは Artifex Software, Inc. です。 Ghostscript のほとんどの MS Windows 向けコードの作者は、 Russell J. Lang, gsview at ghostgum.com.au です。