Solaris のシステム管理 (第 2 巻)

印刷フィルタの管理

「印刷フィルタ」とは、ファイルの内容形式を出力先プリンタが受け付けられる内容形式に変換するプログラムのことです。印刷サービスはフィルタを使用して、次の機能を提供します。

すべての印刷フィルタが上記のすべての機能を実行できるわけではありません。各機能はプリンタに固有なので、別々に実装できます。

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 ソフトウェアには、次のフィルタは組み込まれていません。

Enscript の代わりに postreversepostprintpostiodpost の各フィルタが組み込まれています。

Solaris プリンタマネージャは、プリンタサーバーにデフォルトの PostScript フィルタを追加します。これらのフィルタでは処理できない印刷ニーズがある場合は、カスタム印刷フィルタの作成方法については、「新しい印刷フィルタを作成する方法」を参照してください。

印刷フィルタを追加する方法

  1. プリンタサーバーにスーパーユーザーまたは lp としてログインします。

  2. lpfilter コマンドを使用し、印刷フィルタの定義に基づく印刷フィルタを追加します。


    # lpfilter -f filter-name -F filter-def
    
    -f filter-name

    印刷フィルタ用に選択する名前 

    -F filter-def

    印刷フィルタの定義名 

    印刷フィルタは、プリンタサーバーの /etc/lp/filter.table ファイルに追加されます。

  3. 次のコマンドの出力の中の印刷フィルタについての情報をチェックして、印刷フィルタが追加されているか確認します。


    # lpfilter -f filter-name -l
    

例 - 印刷フィルタを追加する

次の例は、daisytroff.fd 印刷フィルタ定義を持つ daisytroff 印刷フィルタを追加するコマンドを示しています。


# lpfilter -f daisytroff -F /etc/lp/fd/daisytroff.fd

印刷フィルタを削除する方法

  1. プリンタサーバーにスーパーユーザーまたは lp としてログインします。

  2. lpfilter コマンドを使用して印刷フィルタを削除します。


    # lpfilter -f filter-name -x
    
    -f filter-name
    

    削除する印刷フィルタ名 

    -x

    指定したフィルタを削除する 

    印刷フィルタが、プリンタサーバーの /etc/lp/filter.table ファイルから削除されます。

  3. 次のコマンドを使用して、フィルタが削除されていることを確認します。指定した名前のフィルタがないというエラーメッセージが表示されます。


    # lpfilter -f filter-name -l
    

例 - 印刷フィルタを削除する

次の例は、daisytroff 印刷フィルタを削除するコマンドを示しています。


# lpfilter -f daisytroff -x

印刷フィルタに関する情報を表示する方法

  1. プリンタサーバーにスーパーユーザーまたは lp としてログインします。

  2. lpfilter コマンドを使用して、印刷フィルタに関する情報を要求します。


    # lpfilter -f filter-name -l
    
    -f filter-name
    

    情報を表示したい印刷フィルタ。利用できるすべての印刷フィルタに関する情報を表示するには、filter-nameall を指定する

    -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