名前


printcap - プリンタ ケイパビリティ データベース

書式


printcap

説明


printcaptermcap(5) データベースを簡単にしたものであり、ラインプリンタを記述するのに使われる。 スプーリングシステムは、使用されるたびに printcap ファイルにアクセスし、プリンタの動的な追加と削除を可能にしている。 データベースにおける各エントリは、1 つのプリンタを記述するのに使われる。 このデータベースは書き込み可能にしておいてはならない( termcap データベースは普通書き込み可能になっている)。 なぜなら、それによってアカウンティング(accounting)をすり抜けることが 可能になってしまうからである。

通常、デフォルトプリンタは lp である。ただし、環境変数 PRINTER が設定されていれば、そちらが優先される。 各スプーリングユーティリティは、目的のプリンタを明示的に指定できるよう、 オプション -P printer をサポートしている。

ある特定のプリンタに対するこのデータベースの設定の詳細は を参照せよ。

ケイパビリティ


ファイルレイアウトの説明については termcap(5) を参照せよ。 Name Type Description
af     str     
 NULL       アカウントファイル名

br    num     none    lp が tty の場合, そのボーレートを設定する
 ( ioctl(2) コール)
cf     str     
 NULL       cifplot データ用フィルタ

df    str     
 NULL       tex データ
 ( DVI フォーマット) 用フィルタ
fc     num     0       lp が tty の場合, フラグビットをクリアーする (
sgtty.h
)
ff     str      '\f     改ページ(form feed) のために送信する文字列'
fo    bool    false   デバイスオープン時に改ページ(form feed)を印刷する
fs    num     0       ‘fc’ と同様だが、こちらはビットをセットする
gf    str     
 NULL       グラフデータ用フィルタ
 ( plot(3) フォーマット )
hl     bool    false   最後にバーストヘッダーページを印刷する
ic    bool    false   ドライバはインデント付き印刷のために (非標準の) ioctl をサポートする
if    str     
 NULL       アカウントのためのテキストフィルタ名

lf    str     
 /dev/console       エラーログファイル名

lo    str     
 lock       ロックファイル名

lp    str     
 /dev/lp       出力に対してオープンするデバイス名

mx    num     1000    最大ファイルサイズ (
 
 BUFSIZ
ブロックの数で指定), 0 = 制限なし
nd     str     
 NULL       キューリストのための次のディレクトリ (未実装)

nf    str     
 NULL       ditroff データ(デバイス非依存 troff)用フィルタ 

of    str     
 NULL       出力フィルタプログラム名

pc    num     200     1 フィートもしくは 1 ページあたりの価格(1/100 セント単位)
pl    num     66      ページ長 (行数)
pw    num     132     ページ幅 (文字数)
px    num     0       ピクセル単位でのページ幅 (水平方向)
py    num     0       ピクセル単位でのページ長 (垂直方向)
rf    str     
 NULL       
  FORTRAN スタイルのテキストファイルを印刷するためのフィルタ
rg     str     
 NULL       制限グループ。このグループのメンバーのみアクセスが許される

rm    str     
 NULL       リモートプリンタのためのマシン名

rp    str     ‘‘lp’’  リモートプリンタ名引数
rs    bool    false   ローカルにアカウントをもったリモートユーザに限定する
rw    bool    false   読み書きのためにプリンタデバイスをオープンする
sb    bool    false   ショートバナー(short banner) (1 行のみ)
sc    bool    false   複数コピーを抑制する
sd    str     
 /var/spool/lpd       スプールディレクトリ

sf    bool    false   改ページ(form feed)を抑制する
sh    bool    false   バーストページヘッダーの印刷を抑制する
st    str     
 status       ステータスファイル名

tf    str     
 NULL       troff データ(cat 写植)用フィルタ 

tr    str     
 NULL       キューが空の場合に印刷するための後書き文字列(trailer string)

vf    str     
 NULL       ラスタイメージ(raster image)用フィルタ
 

ローカルのラインプリンタドライバが字下げをサポートしているならば、 デーモンはその方法を理解できなければならない。

フィルタ


lpd(8) デーモンは、さまざまなプリンタのタイプに応じてファイルを処理するために、 filters (フィルタ) のパイプラインを構築している。 選択されるフィルタは、 lpr(1) へ渡されるフラグに依存している。 パイプラインの構築は、次のようになる : p       pr | if 通常テキスト + pr(1) none    if      通常テキスト c       cf      cifplot d       df      DVI (tex) g       gf      plot(3) n       nf      ditroff f       rf      Fortran t       tf      troff v       vf      ラスタイメージ(raster image)

if フィルタは、次の引数とともに呼び出される: if [-c] -w width -l length -i indent -n login -h host acct-file

-c フラグは、 lpr に -l フラグ(制御文字を文字としてそのまま通す)が指定してある時に限って渡される。 width length は、ページの幅と長さ(それぞれ pw pl から得られる)を文字数で指定する。 -n と -h はそれぞれ、ジョブ所有者のログイン名とホスト名を指定する。 acct-file は、 printcap af エントリから渡される。

if が指定されていない場合は、 代わりに of が使用される。これらの間には、 if がそれぞれのジョブに対して毎回オープンされるのに対し、 of は 1 回しかオープンされないという違いがある。 したがって、アカウンティング(accounting)を行なうには if の方が適している。 of には、 width length の 2 つのフラグが与えられるだけである。

他のすべてのフィルタは、次のようにして呼び出される: filter -x width -y length -n login -h host acct-file

ただし、 width length はピクセル単位で表され、それぞれ px エントリと py エントリによって指定される。

すべてのフィルタは、そのファイルとして stdin (標準入力)を、プリンタとして stdout (標準出力)をとる。そのログは、 stderr (標準エラー出力)に対して、もしくは syslog(3) を使ってとられる。また、

 SIGINT
を無視することは許されない。

ロギング(LOGGING)


ラインプリンタプログラム自身 (つまり、 lp * プログラム) によって生成されたエラーメッセージは、

 LPR
を使うことで syslog(3) によって記録される。 フィルタのうちの 1 つの stderr (標準エラー出力) 上に印刷されたメッセージは、それに対応する lf ファイルへと送られる。 もちろん、フィルタはそれ自身で syslog を使ってもかまわない。

コンソールへ送られるエラーメッセージには、改行(LF)だけではなく、 復帰(CR)と改行(LF)が追加される。

関連項目


termcap(5), lpc(8), lpd(8), pac(8), lpr(1), lpq(1), lprm(1)
.Rs
.Re

履歴


printcap ファイルフォーマットは、 BSD 4.2 で登場した。

openSUSE Logo

コンテンツ