web-dev-qa-db-ja.com

サイレントモードでghostscriptを使用して印刷する方法

次のGhostscriptコマンドを使用して、ポストスクリプトドキュメントを印刷しています。

C:\Program Files\gs\gs9.14\bin>gswin64c.exe -sDEVICE=mswinpr2 testprinter.ps

このコマンドは、プリンタを変更したり、印刷範囲とコピーを指定したり、Ok]ボタンと[キャンセル]ボタンを使用したりできる[印刷]ダイアログを開きます。

ただし、私の要件は、Ghostscriptを[印刷]ダイアログを抑制してサイレントに印刷することです。

静かに印刷できるコマンドスイッチはありますか?したがって、コマンドを発行するだけで、プリンターがそれを印刷します。

Googleやインターネットで入手できる他のさまざまなGhostscriptドキュメントから情報を取得できませんでした。ですから、フレンドリーで知識豊富なスーパーユーザーコミュニティに確認したいと思います。

4
Chaitanya MSV

ghostscriptドキュメント から抽出、MSWindowsプリンター

-sOutputFileでWindowsプリンター名が指定されていない場合、Ghostscriptは標準の[印刷設定]ダイアログボックスを使用してWindowsプリンターの入力を求めます。 .。

たとえば、Windowsプリンター名が「%printer%printer_name」の形式を使用して-sOutputFileで指定されている場合

gs ... -sOutputFile="%printer%Apple LaserWriter II NT" 

次に、Ghostscriptはプロンプトを表示せずにWindowsプリンターを開こうとします(もちろん、プリンターがFILEに接続されている場合を除く:)

最終プロセスの動作方法によっては、-dBATCHおよび-dNOPAUSEスイッチも必要になる場合があります。

notes%printer%はGhostscriptのリテラルですが、構文は%printer%を参照するcmdパーサーと衝突します。変数読み取り操作として。

バッチファイル内では、パーセント記号を2倍にすることでエスケープできます(%%printer%%)が、コマンドラインモードでは、引用符で囲まれた文字列内にある場合、パーセント記号をエスケープする方法はありません(ドキュメントに示されているように、引数のスペースを処理するために必要)。

コマンドラインモードには、2つの選択肢があります。

  • printer環境変数が存在しないことを確認します(存在しない場合、読み取り操作は実行されず、リテラル%printer%は最後に実行されるコマンドに保持されます)。
  • 読み取り操作が実行されたときに結果のコマンドが正しくなるように、いくつかの環境変数を定義します。

いくつかのコマンドラインの例:

rem ensure the variable does not exist
set "printer="
gs ... -sOutputFile="%printer%Apple LaserWriter II NT"

rem store the full literal
set p=%^printer%
gs ... -sOutputFile="%p%Apple LaserWriter II NT" 

rem store the percent sign
set "p=%"
gs ... -sOutputFile="%p%printer%p%Apple LaserWriter II NT"     
8
MC ND