「印刷フィルタ」とは、ファイルの内容形式を出力先プリンタが受け付けられる内容形式に変換するプログラムのことです。印刷サービスはフィルタを使用して、次の機能を提供します。
ファイルを特定タイプのプリンタで正しく印刷できるように、1 つのデータ形式から別のデータ形式に変換する。
両面印刷、横方向印刷、ドラフト印刷、または高品質印刷などの特別な印刷モードを処理する。
プリンタの障害を検出して LP 印刷サービスに通知する。その結果、印刷サービスはユーザーとシステム管理者に警告を出すことができる。
すべての印刷フィルタが上記のすべての機能を実行できるわけではありません。各機能はプリンタに固有なので、別々に実装できます。
LP 印刷サービスは、表 6-1 に示す PostScript フィルタを提供します。これらのフィルタプログラムは、/usr/lib/lp/postscript ディレクトリに入っています。通常、PostScript 印刷を行う場合は、プリンタサーバーの設定時にフィルタプログラムをインストールする以外に何も行う必要はありません。Solaris プリンタマネージャが提供されるフィルタを自動的に使用可能にします。ただし、他のプリンタを管理する場合は、それらのプリンタの印刷フィルタを管理する必要がある場合があります。
新しい印刷フィルタを作成するには、印刷フィルタプログラムを書き、印刷フィルタの定義を作成しなければなりません。フィルタには、入力形式、出力形式、フィルタ内でコマンド行引数を処理するための言語を提供する複雑なオプションが含まれます。説明と手順については、「新しい印刷フィルタの作成」を参照してください。
印刷フィルタは、プリンタサーバーだけで追加、変更、または削除できます。
lpfilter(1M) コマンドを使用して、利用できるフィルタのリストを管理します。フィルタに関するシステム情報は、/etc/lp/filter.table ファイルに格納されます。lpfilter コマンドは、テーブルに書き出すフィルタに関する情報を、フィルタ記述子ファイルから取得します。提供されているフィルタ記述子ファイル (PostScript のみ) は、/etc/lp/fd ディレクトリに入っています。実際のフィルタプログラムは、/usr/lib/lp の下にあります。
LP 印刷サービスでは、定義できる印刷フィルタの数に制限はありません。使用しないフィルタを削除して LP 印刷サービスによる処理を減らすことができます。(その場合は、LP はすべてのフィルタを検査して特定の印刷要求に使用するフィルタを 1 つ見つけます。) 確信が持てない場合は、フィルタを削除しないでください。
フィルタを追加、変更、または削除すると、LP 印刷サービスによって提供されている元のフィルタの一部を上書きしたり、削除したりしてしまう可能性があります。必要に応じて元のフィルタを復元し、追加したフィルタを削除できます。
SunOS ソフトウェアには、PostScript フィルタのデフォルトセットが組み込まれています。デフォルトセットは、Solaris プリンタマネージャによってプリンタサーバーに自動的に追加されます。SunOS 4.1 で使用されていた TranScript フィルタは、SunOS 5.8 にも相当するものがある場合とない場合があります。表 6-1 は、デフォルトの PostScript フィルタと、該当する TranScript フィルタが存在する場合はそのフィルタ名を示しています。
表 6-1 デフォルトの PostScript フィルタ
フィルタ |
動作 |
相当する TranScript |
---|---|---|
download |
ダウンロードフォント |
|
dpost |
ditroff から PostScript へ |
psdit |
postdaisy |
daisy から PostScript へ | |
postdmd |
dmd から PostScript へ | |
postio |
PostScript プリンタへのシリアルインタフェース | pscomm |
postior |
プリンタとの通信 | |
postmd |
マトリックス型グレースケールから PostScript へ | |
postplot |
plot から PostScript へ |
psplot |
postprint |
simple から PostScript へ |
enscript |
postreverse |
ページの反転または選択 |
psrev |
posttek |
TEK4014 から PostScript へ |
ps4014 |
SunOS ソフトウェアには、次のフィルタは組み込まれていません。
TEX
oscat (NeWSprintTM opost)
Enscript
Enscript の代わりに postreverse、postprint、postio、dpost の各フィルタが組み込まれています。
Solaris プリンタマネージャは、プリンタサーバーにデフォルトの PostScript フィルタを追加します。これらのフィルタでは処理できない印刷ニーズがある場合は、カスタム印刷フィルタの作成方法については、「新しい印刷フィルタを作成する方法」を参照してください。
プリンタサーバーにスーパーユーザーまたは lp としてログインします。
lpfilter コマンドを使用し、印刷フィルタの定義に基づく印刷フィルタを追加します。
# lpfilter -f filter-name -F filter-def |
-f filter-name |
印刷フィルタ用に選択する名前 |
-F filter-def |
印刷フィルタの定義名 |
次のコマンドの出力の中の印刷フィルタについての情報をチェックして、印刷フィルタが追加されているか確認します。
# lpfilter -f filter-name -l |
次の例は、daisytroff.fd 印刷フィルタ定義を持つ daisytroff 印刷フィルタを追加するコマンドを示しています。
# lpfilter -f daisytroff -F /etc/lp/fd/daisytroff.fd |
プリンタサーバーにスーパーユーザーまたは lp としてログインします。
lpfilter コマンドを使用して印刷フィルタを削除します。
# lpfilter -f filter-name -x |
-f filter-name |
削除する印刷フィルタ名 |
-x |
指定したフィルタを削除する |
次のコマンドを使用して、フィルタが削除されていることを確認します。指定した名前のフィルタがないというエラーメッセージが表示されます。
# lpfilter -f filter-name -l |
次の例は、daisytroff 印刷フィルタを削除するコマンドを示しています。
# lpfilter -f daisytroff -x |
プリンタサーバーにスーパーユーザーまたは lp としてログインします。
lpfilter コマンドを使用して、印刷フィルタに関する情報を要求します。
# lpfilter -f filter-name -l |
-f filter-name |
情報を表示したい印刷フィルタ。利用できるすべての印刷フィルタに関する情報を表示するには、filter-name に all を指定する |
-l |
指定したフィルタに関する情報を表示する |
指定した 1 つ以上の印刷フィルタに関する情報が表示されます。
次の例は、postdaisy 印刷フィルタに関する情報を要求するコマンドと、それに応答して表示される情報を示しています。
# lpfilter -f postdaisy -l Input types: daisy Output types: postscript Printer types: any Printers: any Filter type: slow Command: /usr/lib/lp/postscript/postdaisy Options: PAGES * = -o* Options: COPIES * = -c* Options: MODES group = -n2 Options: MODES group¥=¥([2-9]¥) = -n¥1 Options: MODES portrait = -pp Options: MODES landscape = -pl Options: MODES x¥=¥(¥-*[¥.0-9]*¥) = -x¥1 Options: MODES y¥=¥(¥-*[¥.0-9]*¥) = -y¥1 Options: MODES magnify¥=¥([¥.0-9]*¥) = -m¥1 |
次の例は、daisytroff フィルタに関する情報をファイルにリダイレクトするコマンドを示しています (そのフィルタのフィルタ定義が作成されます)。これは、うっかりフィルタ定義を削除してしまった場合に便利です。
# lpfilter -f daisytroff -l > daisytroff.fd |
次の例は、システムに追加されたすべての印刷フィルタを表示するコマンドと、それに応答して表示される情報を示しています。
# lpfilter -f all -l | grep Filter (Filter "download") Filter type: fast (Filter "postio") Filter type: fast (Filter "postior") Filter type: fast (Filter "postreverse") Filter type: slow |