印刷

印刷にたいするサポートを提供する必要のあるアプリケーションは多数存在します。ユーザはスクリーンに表示される内容と同様のものが印刷できることを期待します。GNOMEプラットフォームはあなたのアプリケーションで高品質な印刷をサポートするためのライブラリを提供します。

3.7.1. GNOME プリント

このドキュメントはすでに陳腐化しており、libgnomeprintとlibgnomeprintuiは GtkPrint に置き換えられていることに注意してください。印刷機能はGTK+ 2.10、およびそれ以降のバージョンでは、すべてのアプリケーションが使用できるクロスプラットフォーム対応のプリントAPIに直接統合されています。APIとABIの安定性はGNOME2のライフサイクルでGnomeprintの機能が引き続きサポートされることを保証します。

GNOMEプリントのフレームワークは、あなたのアプリケーションが統一されたインタフェースによって高品質な印刷を提供する手助けをするための2つのライブラリからなります。 プリントフレームワークの中核はPostScriptの出力を生成してプリンタに送信するlibgnomeprintです。その最上位に位置するのがlibgnomeprintuiであり、これはインタフェースのために標準的なプリント用のコントロールを提供します。

libgnomeprintライブラリは多くのプリンタで使用されているPostScriptのイメージングモデルを実装しています。PostScriptをサポートしないプリンタについては以降で説明するCUPSを通じてサポートされます。libgnomeprintは標準のPostScriptイメージングに加え、アルファ・チャンネルとアンチ・エイリアスをサポートします。

The libgnomeprintuiライブラリは標準的な印刷ダイアログ、印刷プレビューダイアログ、そしてその他のさまざまなコントロールを提供し、印刷の処理を構築するのに要求される機能を直感的なユーザインタフェースで提供します。GNOMEプリントフレームワークはプリンタの位置やスプールされた印刷ジョブの詳細を処理し、印刷ダイアログからPostScriptやPDFに直接エクスポートする機能を提供します。

印刷のためにPostScriptを出力する必要がある時は常にlibgnomeprintを使用すべきです。また、ユーザインタフェースを構築する場合はそれがたとえlibgnomeprint以外のソースによる出力のときでもlibgnomeprintuiを使用すべきです。GNOMEプリントフレームワークはユーザが印刷を行うアプリケーションに期待する統一されたユーザインタフェースを提供します

3.7.2. CUPS

大部分のGNOMEシステムでは、CUPS (Common UNIX Printing System)が低レベルの印刷システムとして機能します。CUPSはプリンタの検索、プリンタのオプションへのアクセス、そして異なるプリンタに対する印刷ジョブのスプーリングなどのモダンで機能豊富なアーキテクチャを提供します。

CUPSはローカルおよびネットワーク上にあるプリンタを自動的に検索するユーティリティを提供します。これによりユーザは使用可能なすべてのプリンタを検索できるだけでなく、手動で設定することなく異なる種類のプリンタを使用することができます

CUPSはプリンタの位置や種類に左右されない、印刷のための統一されたインタフェースを提供します。 複数の印刷プロトコルはCUPSによりシームレスに処理され、自動的にフィルタが適用された後に接続先のプリンタに送信されます。 アプリケーションは単純にPostScriptの出力を提供すれば, CUPSが自動的にPostScriptをネイティブでサポートしないプリンタに対する出力の変換を行います。

CUPSはPostScriptプリンタ記述(PostScript Printer Description: PPD)ファイルの形式によるプリンタの設定オプションも提供します。PPD設定によりアプリケーションは個々のプリンタの能力を引き出し、統一されたユーザインタフェースによる使用することが可能になります。たとえばPPDにより印刷ジョブに対してcollate(訳注:複数枚印刷する時の出力順序)やstaple(訳注:印刷物にホチキスを打つ位置)を指定できるプリンタを決定してユーザインタフェースにそのオプションを表示することができます。

ほとんどのケースではアプリケーションからCUPSを直接インタフェースをもつことはないでしょう。GNOMEプリントフレームワークを使用することにより、あなたはCUPSの柔軟さとパワーに自動的にアクセスできます。CUPSを下位にもつということは、プログラミングの量を少なくすることのよいユーザ経験です。