lpfilter コマンド
注: これは System V Print Subsystem コマンドです。
目的
LP 印刷サービスで使用されるフィルターを管理します。
構文
説明
lpfilter コマンドは、 LP 印刷サービスで使用するフィルターの追加、変更、削除、およびリストを行う場合に使用します。 この種のフィルターは、ファイルのコンテンツ・タイプを、 プリンターに受け入れられるコンテンツ・タイプに変換するのに使用します。
lpfilter -? を入力した場合は、コマンド使用方法メッセージが表示され、0 が戻されます。
フラグ
| 項目 | 説明 |
|---|---|
| - (ハイフン) | 標準入力の指定どおりに、フィルターを追加または変更します。 |
| -f FilterName | 追加、変更、削除、またはリストするフィルターの名前を指定します。 |
| -F PathName | ファイル・パス名の内容で指定されているとおりに、フィルターを追加または変更します。 |
| -i | オリジナルのフィルターを、オリジナルの設定にリセットします。 |
| -l | フィルターの記述をリストします。 |
| -x | フィルターを削除します。 |
これらのフラグのいずれかを指定した FilterName の代わりに、パラメーター all を使用することができます。 -F フラグか - フラグに all を指定すると、 要求されている変更がすべてのフィルターに加えられます。 -i フラグに all を指定すると、 事前定義された設定が最初に使用されていたフィルターが、 すべてオリジナルの設定に復元されるという効果があります。 -x フラグに all パラメーターを指定するとすべてのフィルターが削除され、 -l フラグに指定するとすべてのフィルターのリストが作成されます。
フィルターの追加または変更
-f フラグで名前を指定されたフィルターが、 フィルター・テーブルに追加されます。 フィルターが既存の場合は、その説明に変更が加えられ、 入力データ中の新しい情報が反映されます。
フィルターの説明は、 -F フラグが指定されている場合は PathName から取得され、 - フラグが指定されている場合は標準入力から取得されます。 フィルターを定義したり変更を加えたりするには、 これら 2 つのうちの 1 つを指定しなければなりません。 元々 LP 印刷サービスにより送信されたフィルターの名前を -i フラグに指定すると、 オリジナルのフィルターの記述が復元されます。
-F フラグか - フラグを指定して既存のフィルターに変更を加えると、 新しい情報の中で指定されていない項目は未変更のまま残されます。 このコマンドを使用して新しいフィルターを追加する際には、 指定されていない項目についてはデフォルト値が使用されます。
フィルターは、要求のタイプを、 プリンターに受け入れられるデータ・ストリームに変換するのに使用します。 LP 印刷サービスは、指定された印刷要求について次の項目を認識します。
- 要求の内容
- プリンターの名前
- プリンターのタイプ
- プリンターに受け入れられるコンテンツ・タイプ
- 要求のオリジネーターが求めている印刷のモード
この情報を使用して、フィルターかフィルターのパイプラインを検索し、 その内容をプリンターに受け入れられるタイプに変換します。
次に、このコマンドに対する入力を示す項目のリストと、 個々の項目の説明を示します。 リストはすべてコンマかスペースで区切られます。
- 入力タイプ: content-type-list
- 出力タイプ: content-type-list
- プリンター・タイプ: printer-type-list
- プリンター: printer-list
- フィルター・タイプ: filter-type
- コマンド: shell-command
- フラグ: template-list
| 項目 | 説明 |
|---|---|
| 入力タイプ | フィルターに受け入れられるコンテンツ・タイプを示します。 (デフォルトは any です。) |
| 出力タイプ | フィルターが入力内容から作成できるコンテンツ・タイプを示します。 (デフォルトは any です。) |
| プリンター・タイプ | フィルターを使用できるプリンターのタイプを示します。 LP 印刷サービスにより、 これらのタイプのプリンターだけがフィルターを使用できるように制限されます。 (デフォルトは any です。) |
| プリンター | フィルターを使用できるプリンターの名前を示します。 LP 印刷サービスにより、 名前を指定されたプリンターだけがフィルターを使用できるように制限されます。 (デフォルトは anyです。) |
| フィルター・タイプ | フィルターに slow (低速) フィルターまたは fast (高速) フィルターというマークを付けます。 低速フィルターは、通常は入力の変換に長時間を要します。 このフィルターはプリンターに接続せずに実行されるので、 フィルターの実行中でもプリンターは拘束されません。 リモート・システム上のプリンターがリストされた場合、 そのプリンターのフィルター・タイプの値は slow でなければなりません。 高速フィルターは、通常は入力を短時間で変換し、実行次にプリンターに接続されます。 この種のフィルターは、物理プリンターに接続して実行されるよう、 インターフェース・プログラム IP に指定されます。 |
| Command | フィルターを呼び出すために実行されるプログラムを指定します。 shell-command には、
プログラムのフル・パス名と固定フラグが含まれていなければなりません。
追加のフラグは、個々の印刷要求の特性に基づいて、"flags'' フィールド上に作成されます。 フィルターごとにこのコマンドを指定しなければなりません。 このコマンドは、データ・ストリームを標準入力として受け入れ、 変換後のデータ・ストリームを標準出力中に作成しなければなりません。 したがって、単一のフィルターによって処理されないデータを変換するために、 フィルター・パイプラインを作成できます。 |
| flags | LP 印刷サービスで使用されるテンプレートをコンマで区切ったリストを指定します。
LP 印刷サービスは、このテンプレートを使用して、
以下の表にリストされている各印刷要求の特性に基づいてフィルターに対するフラグを作成します。 通常、個々のテンプレートの形式は次のようになります。 keyword-pattern=置換 keyword は、 テンプレートによりフィルター固有のフラグにマップされる特性の名前です。 以下の表に有効な各 keyword がリストされています。 pattern は、 以下の表にリストされている形式のリテラル・パターンのうちの 1 つ、 アスタリスク 1 つ (*)、または正規表現のいずれかです。 pattern と特性の値が合致する場合は、 テンプレートは適切であり、フィルター固有のフラグの生成に使用されます。 replacement はフラグとして使用される値です。 |
正規表現は、 ed コマンドや vi コマンドで使用されるものと同じです。 これには ¥ (... が含まれます。 ¥) および ¥n 構造体。これらを使用して、 パターン の一部を抽出し、 置換および「&」にコピーすることができます。 これは、 パターン 全体を 置換にコピーするために使用できます。
置換 には ` ` * '' を含めることもできます。 また、 ed コマンドの ` ` & '' と同様に、 パターン全体に置き換えられます。
| lp フラグ | 属性 |
|---|---|
| -T |
|
| 該当なし |
|
| 該当なし |
|
| -d |
|
| -f、-o cpi= |
|
| -f、-o lpi= |
|
| -f、-o length= |
|
| -f、-o width= |
|
| -P |
|
| -S |
|
| -f |
|
| -y |
|
| -n |
|
例えば、以下のテンプレートがあるとします。MODES landscape = -l-y ランドスケープ ・フラグを指定して印刷要求が実行依頼された場合、フィルターにフラグ -lが指定されることを示します。 もう 1 つの例として、テンプレートTERM * = -T *フィルターを使用する印刷要求に関連付けられている printer-type に対して、フィルターにフラグ -T printer-type が与えられることを示します。
最後の例として、以下のテンプレートについて考えてみます。MODES prwidth\=\(.*\) = -w\1.ユーザーがlp-y prwidth=10というコマンドを実行したとする
前述の表に示されているように、 LP 印刷サービスは -y フラグが MODES テンプレートによって処理されることを判別します。 この例では、パターン ``prwidth¥=¥(.*¥)'' は、 ユーザーが指定した prwidth=10 と合致するので、 MODES テンプレートは作業を行えます。 replacement が -w¥1 なので、 LP 印刷サービスによりフィルター・フラグ -w10 が生成されます。
LP 印刷サービスは、必要に応じて幾つかのフィルターを連結してフィルター・パイプラインを作成し、 ユーザーのファイルやすべての印刷フラグを処理します。 印刷サービスがフィルター・パイプラインを作成した場合、 パイプライン全体の入出力のタイプではなく、 パイプライン中の各フィルターの入出力のタイプが、 個々のフィルターで INPUT と OUTPUT の値として使用されます。
フィルターの削除
-x フラグを使用して、 FilterName に指定したフィルターを LP フィルター・テーブルから削除します。
フィルターの記述のリスト
-l フラグを使用して、 FilterName に名前を指定したフィルターの記述をリストします。 コマンドが正常に実行されると、次のメッセージが標準出力に送られます。
Input types: content-type-list
Output types: content-type-list
Printer types: printer-type-list
Printers: printer-list
Filter type: filter-type
Command: shell-command
flags: template-listコマンドが失敗すると、エラー・メッセージが標準エラー出力に送られます。