Solaris のシステム管理 (上級編)

印刷フィルタプログラムの作成

LP 印刷サービスには、/usr/lib/lp/postscript ディレクトリにフィルタプログラムが組み込まれています。 これらのフィルタは、宛先プリンタが PostScript 形式のデータを必要とするほとんどの PostScript 印刷の状況に対応します。 印刷フィルタプログラムは、2 進の実行可能プログラムでなければなりません。

フィルタのタイプ

印刷フィルタには、高速フィルタと低速フィルタの 2 種類があります。

高速フィルタは、ファイルの印刷準備にあまり処理時間がかかりません。 また、実行するときにはプリンタにアクセスしなければなりません。 印刷障害を検出する印刷フィルタは、高速フィルタでなければなりません。 PRINTER キーワードをフィルタオプションとして使用するフィルタは、高速フィルタとしてインストールしなければなりません。

低速フィルタは、ファイルの印刷準備に大量の処理時間がかかります。 また、低速フィルタは実行するときにプリンタにアクセスする必要がありません。 低速フィルタはバックグラウンドで実行されるので、プリンタと連結する必要がなく、低速フィルタを必要としないほかのファイルを印刷できます。

ファイルの変換

LP 印刷サービスは、印刷フィルタを使用して、ある内容形式から別の内容形式にファイルを変換します。 プリンタごとに、受け付けられるファイル内容形式を指定できます。 ユーザーは印刷要求を出すときにファイル内容形式を指定し、LP 印刷サービスはその内容形式のファイルを印刷できるプリンタを探します。 多くのアプリケーションは各種プリンタに合わせてファイルを生成できるので、通常はこれで十分です。 ただし、アプリケーションによっては、利用できるプリンタ上で印刷できないファイルを生成するものがあります。

LP 印刷サービスは、プリンタで直接受け付けられない形式のファイルの印刷要求を受信するたびに、印刷要求の内容形式を利用できる (または指定された) プリンタの内容形式と一致させようとします。 一致すると、そのファイルはフィルタをかけなくてもプリンタに直接送信できます。 一致する形式が見つからない場合や、内容形式でフィルタを使用するように指定されている場合は、LP 印刷サービスはファイルの内容形式を利用できるフィルタの入力内容形式と一致させ、フィルタの出力形式をプリンタの内容形式と一致させようとします。 適切なフィルタが見つかると、印刷要求はフィルタを通して渡されます。

特殊印刷モードの処理

印刷フィルタは、特殊モードを処理し特殊ページの印刷を要求します。 特殊印刷モードは、カスタマイズされたフィルタが必要な印刷要求の特性を印刷するために必要です。 フィルタは、次の特性を処理します。

LP 印刷サービスは、これらの特性にデフォルト設定を提供します。ただし、一部の特性については、印刷フィルタの方が効率よく処理できます。 たとえば、プリンタによっては、LP 印刷サービスより効率よく複数のコピーを処理できるものがあり、その場合は複数コピーのページ制御用フィルタを提供できます。

プリンタ障害の検出

各プリンタは、独自の方法でプリンタ障害を検出し、障害信号を LP 印刷サービスに送信します。 LP 印刷サービスは、印刷中にハングアップ (キャリア喪失) と過剰な遅延の有無をチェックするだけです。

プリンタによっては、優れた障害処理能力を持ち、障害の原因を記述するメッセージを送信できるものがあります。 また、キャリア信号の喪失やデータフローのシャットオフを示すものとは異なる信号を使用して障害を示すプリンタもあります。 これらの付加的なプリンタ障害情報を解釈するには、フィルタが必要です。

また、フィルタは印刷要求を保留し、プリンタ障害がクリアされるまで待ってから印刷を再開します。 この機能を使用すると、中断された印刷要求全体を印刷し直す必要がありません。 プリンタに使用される制御シーケンスを認識するフィルタだけが、ファイルの改ページ位置を判別できます。 したがって、その種のフィルタ以外は、障害がクリアされた後で印刷を再開する必要があるファイル内の位置を検出できません。

印刷フィルタがメッセージを生成すると、そのメッセージは LP 印刷サービスによって処理され、警告が使用可能になっている場合は、システム管理者に警告が送信されます。 障害の通知の設定 を参照してください。

印刷フィルタプログラムの要件

印刷フィルタは単純なものでも複雑なものでもかまいませんが、次の要件を満たさなければなりません。

フィルタにプリンタ障害を検出させたい場合は、次の要件も満たしてください。