印刷フィルタは、ファイルの内容形式を出力先プリンタが受け付けられる内容形式に変換するプログラムです。
LP 印刷サービスはフィルタを使用して、次の機能を提供します
ファイルを特定タイプのプリンタで正しく印刷できるように、1 つのデータ形式から別のデータ形式に変換する。
両面印刷、横方向印刷、ドラフト印刷、または高品質印刷などの特別な印刷モードを処理する。
プリンタの障害を検出して LP 印刷サービスに通知する。その結果、印刷サービスはユーザーとシステム管理者に警告を出すことができる。
すべての印刷フィルタが上記のすべての機能を実行できるわけではありません。各機能はプリンタに固有なので、別々に実装できます。
LP 印刷サービスは、表 10–3 に示す PostScript フィルタを提供します。これらのフィルタプログラムは、/usr/lib/lp/postscript ディレクトリに入っています。通常、PostScript 印刷を行う場合は、印刷サーバーの設定時にフィルタプログラムをインストールする以外に何も行う必要はありません。Solaris 印刷マネージャーが提供されるフィルタを自動的に使用可能にします。ただし、他のプリンタを管理する場合は、それらのプリンタの印刷フィルタを管理する必要がある場合があります。
新しい印刷フィルタを作成するには、印刷フィルタプログラムを作成し、印刷フィルタの定義を作成する必要があります。フィルタには、入力形式、出力形式、そのフィルタ内でコマンド行引数を処理する言語を提供する複雑なオプションが入っています。説明と手順については、「新しい印刷フィルタの作成」を参照してください。
印刷フィルタの追加、変更、削除、または復元は、印刷サーバーでだけ可能です。
lpfilter コマンドを使用すると、利用可能なフィルタを管理できます。フィルタに関するシステム情報は、/etc/lp/filter.table ファイルに格納されます。lpfilter コマンドは、テーブルに書き出すフィルタに関する情報を、フィルタ記述子ファイルから取得します。提供されているフィルタ記述子ファイル (PostScript のみ) は、/etc/lp/fd ディレクトリに入っています。実際のフィルタプログラムは、/usr/lib/lp ディレクトリに入っています。
LP 印刷サービスでは、定義できる印刷フィルタの数に制限はありません。使用しないフィルタを削除して LP 印刷サービスによる処理を減らすことができます。(LP は、特定の印刷要求に使用するフィルタを見つけるために、すべてのフィルタを検査します)。確信が持てない場合は、フィルタを削除しないでください。
フィルタを追加、変更、または削除すると、LP 印刷サービスによって提供されている元のフィルタの一部を上書きしたり、削除したりしてしまう可能性があります。必要に応じて元のフィルタセットを復元できます。また、追加したフィルタを削除することもできます。
SunOS ソフトウェアは、PostScript フィルタのデフォルトセットを提供しています。これらのフィルタは、Solaris 印刷マネージャーによって印刷サーバーに自動的に追加されます。LPD ベースの印刷サービスで使用されていた TranScript フィルタは、SunOS にも相当するものがある場合とない場合があります。次の表は、デフォルトの PostScript フィルタと、該当する TranScript フィルタが存在する場合はそのフィルタ名を示しています。
表 10–3 デフォルトの PostScript フィルタ
PostScript フィルタ |
動作 |
相当する TranScript |
---|---|---|
ダウンロード |
フォントをダウンロードする |
|
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 (NeWSprint opost)
Enscript
Enscript の代わりに postreverse、postprint、postio、dpost の各フィルタが組み込まれています。
Solaris 印刷マネージャーは、印刷サーバーにデフォルトの PostScript フィルタを追加します。これらのフィルタでは処理できない印刷を行う必要がある場合は、「新しい印刷フィルタを作成する方法」を参照してください。この節では、カスタム印刷フィルタの作成方法について説明します。
印刷サーバーで、スーパーユーザーになるか、同等の役割になります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
印刷フィルタの定義に基づく印刷フィルタを追加します。
# lpfilter -f filter-name -F filter-definition |
印刷フィルタ用に選択する名前を指定する
印刷フィルタの定義名を指定する
詳細は、lpfilter(1M) のマニュアルページを参照してください。
印刷フィルタが追加されたことを確認します。
# lpfilter -f filter-name -l |
次の例は、daisytroff.fd 印刷フィルタ定義を持つ daisytroff 印刷フィルタを追加する方法を示しています。
# lpfilter -f daisytroff -F /etc/lp/fd/daisytroff.fd |
印刷サーバーで、スーパーユーザーになるか、同等の役割になります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
印刷フィルタを削除します。
# lpfilter -f filter-name -x |
削除する印刷フィルタ名を指定する
指定したフィルタを削除する
フィルタが削除されたことを確認します。
# lpfilter -f filter-name -l |
指定した名前のフィルタがないというエラーメッセージが表示されます。
次の例は、daisytroff 印刷フィルタを削除する方法を示しています。
# lpfilter -f daisytroff -x |
印刷サーバーで、スーパーユーザーになるか、同等の役割になります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
印刷フィルタに関する情報を要求します。
# lpfilter -f filter-name -l |
情報を表示したい印刷フィルタを指定する。利用できるすべての印刷フィルタに関する情報を表示するには、filter-name に all を指定する
指定したフィルタに関する情報を表示する
指定した 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 |
次の例は、システムに追加されたすべての印刷フィルタを表示する方法を示します。コマンドの出力例も示します。
# 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 |
次の例は、daisytroff フィルタに関する情報をファイルにリダイレクトする方法を示しています 。この作業は、うっかりフィルタ定義を削除してしまった場合に便利です。
# lpfilter -f daisytroff -l > daisytroff.fd |