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

サポートされていないプリンタの terminfo エントリを追加する

LP 印刷サービスは、インタフェースプログラムと terminfo データベースを使用して各プリンタを初期化し、選択されたページサイズ、文字ピッチ、行ピッチ、および文字セットを設定します。

各プリンタは、terminfo データベース内で短縮名を使用して識別されます。terminfo データベースで使用される名前は、TERM シェル変数を設定するのに使用する名前と同じです。また、この名前はプリンタを設定するときに指定するプリンタタイプでもあります。たとえば、各種の PostScript プリンタのエントリは、/usr/share/lib/terminfo/P に入っています。SunOS システムに組み込まれているデフォルトエントリは、PS (PostScript 用) と PSR (Reverse PostScript 用) です。

プリンタの terminfo エントリが見つからなくても、ページサイズ、ピッチ、および文字セットを自動選択しないで、LP 印刷サービスでプリンタを使用できます。ただし、印刷要求ごとに正しいモードでプリンタが設定されないという問題が起きることがあります。

使用中のプリンタタイプの terminfo エントリがないが、プリンタを正しいモードに設定しておきたい場合は、プリンタで使用するインタフェースプログラムをカスタマイズするか、terminfo データベースにエントリを追加できます。terminfo データベース内の端末エントリやプリンタエントリには、多数の項目が入っており、定義されています。しかし、LP 印刷サービスはそのうち 50 未満の項目しか使用しません。表 7-2 は、プリンタに必要な terminfo 項目を示しています。

表 7-2 プリンタに必要な terminfo 項目

項目 

 

意味 

ブール値 

 

 

 

cpix

文字ピッチを変更すると解像度が変わる 

 

daisy

プリンタで文字セットを変更するには演算子が必要 

 

lpix

行ピッチを変更すると解像度が変わる 

数値 

 

 

 

bufsx

印刷前にバッファされるバイト数 

 

cols

1 行の列数 

 

cps

1 秒あたりの文字の平均印刷速度 

 

it

最初はスペース n 個分ごとのタブ

 

lines

1 ページの行数 

 

orc

1 文字あたりの水平解像度 

 

orhi

1 インチあたりの水平解像度 

 

orl

1 行あたりの垂直解像度 

 

orvi

1 インチあたりの垂直解像度 

文字列 

 

 

 

chr

水平解像度を変更する 

 

cpi

1 インチあたりの文字数を変更する 

 

cr

キャリッジリターン 

 

csnm

文字セット名のリスト 

 

cudl

1 行下げる 

 

cud

キャリッジを n 行下に移動する

 

cuf

キャリッジを n 列右に移動する

 

cvr

垂直解像度を変更する 

 

ff

紙送りする 

 

hpa

水平絶対位置 

 

ht

次の 8 スペースタブストップまでのタブ 

 

if

初期化ファイル名 

 

iprog

初期化プログラムのパス名 

 

is1

プリンタ初期化文字列 

 

is2

プリンタ初期化文字列 

 

is3

プリンタ初期化文字列 

文字列 

 

 

 

lpi

1 インチあたりの行数を変更する 

 

mgc

マージン (上、下、横) をすべて消去する 

 

rep

文字を n 回繰り返す

 

rwidm

倍幅の印刷を使用不可にする 

 

scs

文字セットを選択する 

 

scsd

文字セットの定義を開始する 

 

slines

ページの長さを 1 ページあたり n 行に設定する

 

smgl

現在の列の左マージンを設定する 

 

smglp

左マージンを設定する 

 

smgr

現在の列の右マージンを設定する 

 

smgrp

右マージンを設定する 

 

smglr

左右のマージンを設定する 

 

msgt

現在の行の上マージンを設定する 

 

smgtp

上マージンを設定する 

 

smgb

現在の行の下マージンを設定する 

 

smgbp

下マージンを設定する 

 

smgtb

上下のマージンを設定する 

 

swidm

倍幅の印刷を使用可能にする 

 

vpa

垂直絶対位置 

サポートされていないプリンタの terminfo エントリを追加する方法


注 -

プリンタの terminfo エントリを作成する前に、まず、そのプリンタをサポートする既存の terminfo エントリがないことを確認してください。そのためには、類似するプリンタがあれば、そのエントリを使用してプリンタを設定してください。


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

  2. プリンタの terminfo エントリ名を決定します。

    /usr/share/lib/terminfo ディレクトリ内のディレクトリには、有効な terminfo エントリがすべて入っています。それを参考にしてプリンタ名を選択してください。

  3. プリンタの terminfo エントリファイルを作成します。

    LP 印刷サービスに新しいプリンタを追加するために terminfo エントリ内で定義しなければならない項目については、表 7-2 を参照してください。terminfo データベースの構造については、terminfo(4) のマニュアルページを参照してください。

    新しい terminfo エントリを作成しやすいように、infocmp コマンドを使用して既存の terminfo エントリをファイルに保存します。これは、作成したいエントリに似た terminfo エントリがある場合に便利な方法です。たとえば、次のコマンドで ps エントリを ps_cust ファイルに保存すると、新しい terminfo エントリになります。

    infocmp ps > ps_cust

  4. terminfo エントリをコンパイルして terminfo データベースに入れます。


    # tic terminfo_entry
    

    terminfo_entry

    作成した terminfo エントリファイル

  5. /usr/share/lib/terminfo ディレクトリ内で新しい terminfo エントリファイルをチェックします。