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 印刷サービスは、指定された印刷要求について次の項目を認識します。
- 要求の内容
- プリンターの名前
- プリンターのタイプ
- プリンターに受け入れられるコンテンツ・タイプ
- 要求のオリジネーターが求めている印刷のモード
この情報を使用して、フィルターかフィルターのパイプラインを検索し、 その内容をプリンターに受け入れられるタイプに変換します。
次に、このコマンドに対する入力を示す項目のリストと、 個々の項目の説明を示します。 リストはすべてコンマかスペースで区切られます。
- 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
項目 | 説明 |
---|---|
Input types (入力タイプ) | フィルターに受け入れられるコンテンツ・タイプを示します。 (デフォルトは any です。) |
Output types (出力タイプ) | フィルターが入力内容から作成できるコンテンツ・タイプを示します。 (デフォルトは any です。) |
Printer types (プリンター・タイプ) | フィルターを使用できるプリンターのタイプを示します。 LP 印刷サービスにより、 これらのタイプのプリンターだけがフィルターを使用できるように制限されます。 (デフォルトは any です。) |
Printers (プリンター) | フィルターを使用できるプリンターの名前を示します。 LP 印刷サービスにより、 名前を指定されたプリンターだけがフィルターを使用できるように制限されます。 (デフォルトは any です。) |
Filter type (フィルター・タイプ) | フィルターに slow (低速) フィルターまたは fast (高速) フィルターというマークを付けます。 低速フィルターは、通常は入力の変換に長時間を要します。 このフィルターはプリンターに接続せずに実行されるので、 フィルターの実行中でもプリンターは拘束されません。 リモート・システム上のプリンターがリストされた場合、 そのプリンターのフィルター・タイプの値は slow でなければなりません。 高速フィルターは、通常は入力を短時間で変換し、実行次にプリンターに接続されます。 この種のフィルターは、物理プリンターに接続して実行されるよう、 インターフェース・プログラム IP に指定されます。 |
コマンド | フィルターを呼び出すために実行されるプログラムを指定します。
shell-command には、
プログラムのフル・パス名と固定フラグが含まれていなければなりません。
追加のフラグは、個々の印刷要求の特性に基づいて、"flags'' フィールド上に作成されます。
フィルターごとにこのコマンドを指定しなければなりません。
このコマンドは、データ・ストリームを標準入力として受け入れ、 変換後のデータ・ストリームを標準出力中に作成しなければなりません。 したがって、単一のフィルターによって処理されないデータを変換するために、 フィルター・パイプラインを作成できます。 |
フラグ | LP 印刷サービスで使用されるテンプレートをコンマで区切ったリストを指定します。
LP 印刷サービスは、このテンプレートを使用して、
以下の表にリストされている各印刷要求の特性に基づいてフィルターに対するフラグを作成します。
通常、個々のテンプレートの形式は次のようになります。 keyword-pattern=replacement keyword は、 テンプレートによりフィルター固有のフラグにマップされる特性の名前です。 以下の表に有効な各 keyword がリストされています。 pattern は、 以下の表にリストされている形式のリテラル・パターンのうちの 1 つ、 アスタリスク 1 つ (*)、または正規表現のいずれかです。 pattern と特性の値が合致する場合は、 テンプレートは適切であり、フィルター固有のフラグの生成に使用されます。 replacement はフラグとして使用される値です。 |
正規表現は、 ed コマンドや vi コマンドで使用されるものと同じです。 この式に ¥( . . . ¥) と ¥n の構造体を含めると、pattern の一部分を取り出して replacement にコピーできます。また ``&'' を含めると、pattern 全体を replacement にコピーできます。
replacement に ``*'' を使用することもできます。 ed コマンドの ``&'' と同様に、この場合も pattern 全体が置き換えられます。
lp フラグ | 属性 |
---|---|
-T |
|
N/A |
|
N/A |
|
-d |
|
-f、-o cpi= |
|
-f、-o lpi= |
|
-f、-o length= |
|
-f、-o width= |
|
-P |
|
-S |
|
-f |
|
-y |
|
-n |
|
例えば、テンプレート MODES landscape = -l は、 -y landscape フラグが指定された印刷要求が実行依頼されたら、 フィルターにはフラグ -l が指定されることを示します。 別の例として、テンプレート 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
コマンドが失敗すると、エラー・メッセージが標準エラー出力に送られます。