まず、複数ページのPostScriptファイルのすべてのページにまったく同じ「バウンディングボックス」値が表示されるわけではないことに注意してください(実際、これはかなりまれです)。したがって、考えられるすべての境界ボックス(すべてを含む)に共通する分母を見つけたいと思うでしょう。
次に、実行時にコンソールウィンドウに表示されるのは、 stdinとstdoutの出力チャネルgs -sDEVICE=bbox
の組み合わせです。ただし、必要な情報はstderrに送信されます。コマンド出力をファイルにリダイレクトすると、stderrではなくstdoutがキャプチャされます。stderrに送信されるバージョンとデバッグ情報の一部を抑制するには、コマンドラインに追加します。-q
したがって、すべてのページのバウンディングボックスの'クリーン*出力を取得するには、最初にstderrチャネルをリダイレクトする必要があります。次に、ファイルinfo.txtにキャプチャします。したがって、次のような(または同様の)コマンドを実行します。
gs \
-dBATCH \
-dNOPAUSE \
-q \
-sDEVICE=bbox \
example.ps \
2>&1 \
| tee info.txt
またはこれでさえ、あなたが:についての情報を必要としないならばHiResBoundingBox
:
gs \
-dBATCH \
-dNOPAUSE \
-q \
-sDEVICE=bbox \
example.ps \
2>&1 \
| grep ^%%Bound \
| tee info.txt
また、ところで、PostScriptとPDF入力ファイルのバウンディングボックスを決定できることに注意してください。
これにより、次のような出力が得られます。各行は、最初の行の1ページ目から始まる入力ファイルのページを表します。
%%BoundingBox: 36 18 553 802
%%BoundingBox: 37 18 553 804
%%BoundingBox: 36 18 553 802
%%BoundingBox: 37 668 552 803
%%BoundingBox: 40 68 532 757
最後に、 Ghostscriptのbbox
デバイスに関する背景情報について、次の回答を読んでください。そこには、トリミングジョブ用の代替PostScriptコードもいくつかあります。