A4用紙とA3用紙が挿入された複数のトレイを備えたPostScript 3プリンタに問題があります。 Linuxでは、CUPSシステムを使って、media = a4オプションを指定するか、A4用とA3用の2つの別々のプリンタを定義して、適切な用紙サイズを手動で設定します。PostScriptを使用した自動用紙選択
しかし、このような状況は、常に適切なプリンタを選ぶことを覚えておく必要があるため、最適ではありません。
自動的に選ぶ用紙サイズ 'を生成するプリンタのPPDファイルを変更することは可能です:PostScriptのよう
はチューリング完全言語で、 Red Bookと Blue Bookにビットを読んだ後、私は疑問を持っていますオプションを選択すると、自動的に正しいメディアサイズが設定されます。多分、プリントアウトのバウンディングボックスのサイズに依存しますか?たぶん、このような何か開始:私は、ページのバウンディングボックスの情報を取得するにはどうすればよい
PostScriptコード
% set pagesize A4
/setA4Paper {<</PageSize [595 842] >> setpagedevice} def
% set pagesize A3
/setA3Paper {<</PageSize [842 1190] >> setpagedevice} def
% decide which paper size to take based on the bounding box
% (array of two elements, width and height)
% if the bounding box is wider that A4 paper, pick A3 paper instead
boundingBox 0 get 595 gt {setA3Paper} {setA4Paper} ifelse
詳細質問
- ?私が調べることができる標準またはそれ以上の文書がありますか?
- 私のサンプルコードでPageSizeのように設定すれば、プリンタが正しいトレイを選択するのに十分でしょうか?
- 用紙トレイを切り替えるためにPSコマンドが必要なプリンタのPPDファイルを調べる方法はありますか?さらに、このプリンタにはサイズごとに2つのトレイがありますので、用紙が切れている場合はプリンタがフルトレイを選択すると良いでしょう。
EDIT
KENS」と答えたから、PostScriptから直接バウンディングボックスを得るための簡単な方法がないと思われます。 CUPSキューに戻す前に、またはプリンタに送信する前に、PSファイルをカスタムスクリプトでルーティングする方法はありますか?
あなたの洞察をお寄せいただきありがとうございます。 PPDにトレイ切り替えコードがあれば、リバースエンジニアリングが必要だと思います。プリンタのCUPS設定で用紙サイズを選択できるので、いくつかあるはずです。また、各トレイにはメディアが指定されています。私が思っていたより少し複雑に思えます。 – GorillaPatch