Dpr [ options ] [ -p field-format-list ] [ -P printer ] [ input-file.. ]
Dpr はD-ファイルを端末に表示またはプリンタにプリントする。 現バージョンでは行-カラム型のデバイスのみをサポートする。
表示/プリントはテーブル型のフォーマットで行う。 レコードはフィールドごとにカラムをそろえて配置される。 フィールド値が長すぎて行に入らない場合, ページの右端からこぼれた部分は捨てられる。 フィールドを折り返してプリントする機能はない。
フィールドに対して出力フォーマットを指定することができる。 D_fmtマニュアル に示す出力フォーマットのうち,オプション l, r および cfmt のみが有効である。 これ以外のフォーマットは指定しても無視される。 出力フォーマットは,コマンドオプション -f またはコマンドオプション -p で指定する。 オプション -f はフォーマットのみを与える。 オプション -f にないフィールドは省略時フォーマットでプリントされる。 これに対しオプション-p はフォーマットを与えるだけではなく, プリントするフィールドおよびそのフィールド順を指定する。
リピーティングフィールド(1レコード中の複数の同一名フィールド)は, 縦形のボックス内に配置される。 ボックス内の各行がここのフィールドに対応する。 リピート数(同一名フィールドの個数)がページの最大行数を超えたときは, 残りの繰り返しは捨てられる。 レコードの表示がページを超えて続くことはない。
テーブルの幅がページに収まりきれない場合, Dpr は多層の配置をする。 1ページを層に分け,1レコードを層にまたがって表示する。 各層での同一レコードを識別しやすくするため レコード番号(1からはじまる)を各層の左端に表示する。 この識別用フィールドは,オプション -i によって,レコード番号の代わりに, レコード内の任意のフィールド(複数可)にすることができる。
ページサイズは -x および -y オプションで与えることができる。 ただし,出力がttyの場合, サイズはウィンドウサイズからとられる。 出力がプリンタの場合, -x および -y の値は,環境変数 Dprintcap からとられる。 オプション -P を使用するためには, この環境変数を正しくセットしなければならない。 (プリンタ出力の節参照)。 出力が(ファイルに)リダイレクトされている場合, デフォルト(80カラム×40行)値が使われる。
タイトルラインには, 入力ファイル名,日付および時刻( Dpr を実行した日時)とページ番号が表示される。 ただし,これらは入力ファイルが標準入力の場合, 表示されない。 タイトル(複数可)をオプション -h で指定することもできる。 これらのタイトルは入力ファイル名の代わりにタイトルラインに 表示される。 複数のオプション -h がある場合,複数行のヘッダが作られる。 最初のオプションが最初の行,2番目のオプションが 次の行,…となる。
オプション -g を使用すると, Dpr は指定のフィールドの値が変わったところで改ページしてプリントする。 また,この値がヘッダの最後の行としてプリントされ,これらのフィールド は,プリント本体には (オプション-pで指定しない限り)プリントされない。
通常, Dpr は結果を標準出力に書き出す。 標準出力が端末の場合, moreコマンドを使用して,ページ単位表示を行う。 ページ単位表示用コマンドは,環境変数PAGERによって 変更することができる。
オプション -P が指定されると Dpr は,出力をプリンタに送る。 プリンタ出力のためには環境変数 Dprintcap が必須である。 プリンタ出力の節を参照。
ASCIIの制御文字はキャレット付き形式でプリントされる。 たとえば,TABは"^I"で表される。 その他の制御文字は"<xx>"のように表される。 xxはコードの16進値である。 ロケールの文字コードにない文字はQUESTION MARK (?) で表示される。
Dprは,一時的なテキストファイルを (UNIXの場合パイプライン出力に)作成して これをコマンドによってプリンタに送る。 このためのコマンドについて知る必要がある。 Windowsではこのコマンドはlpr(Windows NT4.0以降)であり, UNIXではlpまたはlprコマンドである。 (これら以外でもプリンタ出力のできるコマンドであればよい)。 このコマンドはテキストファイル (UNIXの場合は標準入力から)を入力して, 固定ピッチフォントでプリンタにプリントできなければならない。
さらに,そのコマンドによって 1ページあたり何行何カラム印字されるかを知る必要がある。 この数字はプリンタのマニュアルにあるかもしれないが, パターンをプリントしてみて数える方法もある。 カラム数は,フォントのASCII文字のピッチを単位として 数える。
環境変数Dprintcap はSEMICOLON(:)で区切られた 1つ以上のエントリを持つ。 各エントリには,COLON(:)で区切られた 5つのフィールドを持つ。 これらのフィールドは位置によって識別され, name,type, columns,rows およびcommandの順である。
Nameは, Dprコマンドのオプション-Pで使用する名前である。 これは,システム上のプリンタ名と同じでもいいが,異なっていてもかまわない。 この名前はDprコマンドの指定と Dprintcapのエントリを結びつけるためだけに使う。 当然,Dprintcapエントリ中で一意となるように名前をつけるべきである。
Typeは"t"を指定する。 これは"text"型であることを意味する。 将来的には"postscript"型などもサポートする予定があるが, 現在は"t"のみサポートする。
Columnsおよびrows は,当該コマンドによってプリントされる場合の1ページ最大の カラム数および行数である。 この値は,Dprのコマンドオプション-x,-y を省略したときに使用される。
Commandは文字列で,コマンドを指定する。 このコマンドがDprによって呼び出される。 たとえば,"lpr -S server -P printer というように指定する。次の使用例を参照。
Windowsの場合,Dprintcap環境変数は, 通常コントロールパネルの「システム」からセットする。 (この中のどこにあるかはバージョンにもよる)。 また,setコマンドによってセットすることもできる。 UNIXの場合, Dprintcap環境変数は,通常 .profile,.cshrcなどのシェル初期化スクリプト ファイルに書いてセットする。
フィールド"filename"および"size"のみを表示する。
Dpr -p "filename,size"
Dファイル"test1.d"を,"classroom"フィールドの値が変わるごとに 改ページして表示する。見出しフィールドとして"student-id"フィールドを使う。
Dpr -i student-id -g classroom test1.d
Windos(NT4.0以降)で,Dprintcap環境変数をセットする:
(コントロールパネルの「システム」からセットしてもよい。)
set Dprintcap=LBP0:t:106:76:lpr -S PRTSERV -P LBP0;LBP1:t:106:76:lpr -S PRTSERV -P LBP1
UNIXのshでDprintcap環境変数をセットする。
Dprintcap="LBP0:t:106:76:lp -d LBP0"
export Dprintcap
UNIXのcshでDprintcap環境変数をセットする。
setenv Dprintcap "LBP0:t:106:76:lpr -PLBP0"
Dファイル"list.d"をLBP0と名付けたプリンタに出力する。
Dpr -P LBP0 list.d
マニュアル D_msg参照。
MIYAZAWA Akira