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 エントリがないことを確認してください。そのためには、類似するプリンタがあれば、そのエントリを使用してプリンタを設定してください。
プリンタサーバーにスーパーユーザーまたは lp としてログインします。
プリンタの terminfo エントリ名を決定します。
/usr/share/lib/terminfo ディレクトリ内のディレクトリには、有効な terminfo エントリがすべて入っています。それを参考にしてプリンタ名を選択してください。
プリンタの terminfo エントリファイルを作成します。
LP 印刷サービスに新しいプリンタを追加するために terminfo エントリ内で定義しなければならない項目については、表 7-2 を参照してください。terminfo データベースの構造については、terminfo(4) のマニュアルページを参照してください。
新しい terminfo エントリを作成しやすいように、infocmp コマンドを使用して既存の terminfo エントリをファイルに保存します。これは、作成したいエントリに似た terminfo エントリがある場合に便利な方法です。たとえば、次のコマンドで ps エントリを ps_cust ファイルに保存すると、新しい terminfo エントリになります。
infocmp ps > ps_cust
terminfo エントリをコンパイルして terminfo データベースに入れます。
# tic terminfo_entry |
terminfo_entry |
作成した terminfo エントリファイル |
/usr/share/lib/terminfo ディレクトリ内で新しい terminfo エントリファイルをチェックします。