OK。したがって、CUPSは印刷スプーラーとして機能し、印刷ジョブを管理してプリンターに送信することを理解しています。また、PPDファイルがプリンターの機能セットを記述し、CUPSがこれらとフィルターを使用してプリンターとインターフェイスし、プリンターがドキュメントの印刷に使用できる出力を生成することも理解しています(PostScript、PCL、または独自の形式でプリンターが必要です)。しかし、私はこれのいくつかの側面について混乱しています。主に:
私の混乱を解消するのを手伝ってくれてありがとう。
CUPSに印刷ジョブを取得する方法はたくさんあります。
lp
またはlpr
コマンドの実装にパイプするだけかもしれません。 。localhost
のポート515/TCPでLPD印刷プロトコルを使用する可能性がありますlocalhost
ポート631を介してIPPと通信する場合がありますlibcups.so
)完全なネイティブCUPSサポート用。lp
またはlpr
コマンドを使用する場合は、コマンドラインオプションを使用してジョブオプションを指定する必要があり、サポートされているオプションを自動的に検出する従来の方法はありません。このレガシーUnixインターフェイスを使用するプログラムでは、通常、ユーザーが印刷コマンドラインを編集して必要なオプションを設定できます。 CUPSには、ファイル形式の自動検出(file
コマンドと同様)も含まれているため、理論的には次のようになります。言うだけ lp something.png
そして、CUPSにPNG形式のコンバーターが利用できる場合は、合理的な方法で画像を印刷します。
IPPのCUPS実装には、クライアントがプリンターとジョブのオプションを照会および設定し、PPDコンテンツを要求することを可能にするいくつかの プロトコル拡張 が含まれています。
IPPプロトコル自体には、HTTPと同様に、コンテンツネゴシエーションが含まれています。サーバーは、MIMEタイプとして受け入れることができる印刷ジョブ形式を指定し、クライアントは、送信しようとしているデータの形式を宣言します。サーバーが特定のジョブ形式をサポートしていない場合、ジョブは拒否される可能性があります。また、ジョブ形式として「application/vnd.cups-raw」を指定して、変換なしでジョブをそのままプリンターに渡す必要があることを示すこともできます。CUPS管理者は、これを許可するかどうかを選択できます。
一般に、CUPSサーバーには、さまざまなファイルタイプを標準の「キューに入れられたジョブ形式」に変換し、そこからプリンターが受け入れるもの(PCL、PostScript、またはより独自の形式の1つなど)に変換するために使用できる一連のジョブ形式コンバーターがあります。 「キューに入れられたジョブ形式」は以前はPostScriptでしたが、現在はCUPSの最新バージョンではPDF)になっています。