Dpr - Dファイルの表示・印刷

[ 英語 | 日本語 ]

[Dホームページへ]

形式

Dpr [ options ] [ -p field-format-list ] [ -P printer ] [ input-file.. ]

説明

Dpr はD-ファイルを端末に表示またはプリンタにプリントする。 現バージョンでは行-カラム型のデバイスのみをサポートする。

表示/プリントはテーブル型のフォーマットで行う。 レコードはフィールドごとにカラムをそろえて配置される。 フィールド値が長すぎて行に入らない場合, ページの右端からこぼれた部分は捨てられる。 フィールドを折り返してプリントする機能はない。

フィールドに対して出力フォーマットを指定することができる。 D_fmtマニュアル に示す出力フォーマットのうち,オプション lr および 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 (?) で表示される。

オプション

-f field-format-list
フィールドの出力フォーマットを与える。
-g key-field-list
グループ化フィールド; これらのフィールド値はヘッダラインの最後の 行にプリントされる。これらのフィールド値が変わるごとに改ページを行う。
-h header-title
ヘッダタイトルを指定する。複数のオプション -h が指定でき,この場合, 最初の -h header-title が最初のヘッダ行となり, 2番目が2行目等となる。
-i field-list
識別用フィールドを指定する。 こ(れら)のフィールドは, レコード番号の代わりに, 各レコードの先頭のフィールドとして プリントされる。 ページが多層化された場合, 識別用フィールドは各層の最初にプリントされる。 識別のしやすさのために識別用フィールドの値は 一意であることが通常の用法であるが必須ではない。
-k key-flags
-g key-field-list の省略時のキーフラグを指定する。 この省略時キーフラグは,リストのうちで全くキーフラグを 指定されていないエントリのみに有効である。 マニュアル Dintro参照。
-n
このオプションが指定されると, 改ページがnew line制御コードだけで行われる。 通常の場合,改ページはform-feed制御コードで行われる。 このオプションは行-カラム型デバイスのみに適用される。
-p field-format-list
プリントすべきフィールドとそのフォーマットおよび順番を指定する。
-P printer
プリントするプリンタ名。 このオプションを指定しないと標準出力に出力する。
-T directory
(Windowsのみで使用)。一時ファイル格納用ディレクトリを指定する。 このオプションは,オプション -Pとともに指定した場合のみ意味がある。 このオプションを指定しないと, Dprは環境変数 TEMPの使用を試み,失敗すると"c:\temp",さらにカレントディレクトリ を試みる。したがって,このオプションを必要とするのは これらのディレクトリが使用できないとき(たとえばCDROM上に カレントディレクトリがある場合)のみである。
-x page-width
行-カラム型デバイスではページの最大カラム数を指定する。 省略時は,出力が端末ならウィンドウサイズ,プリンタなら 環境変数Dprintcapから値が計算される。 出力をリダイレクトした場合は,プリセット値80となる。
-y page-hight
行-カラム型デバイスではページの最大行数を指定する。 省略時は,出力が端末ならウィンドウサイズ,プリンタなら 環境変数Dprintcapから値が計算される。 出力をリダイレクトした場合は,プリセット値40となる。
-z default-options
オプション -f および -p field-lists に適用される省略時出力フォーマットオプション(lr)を指定する。 指定しない場合,フォーマットオプションなしとなる。
-D idatautf=8|16|32
UTF入出力機能参照。 出力は,常にロケールの文字コードとなる。

環境変数

Dprintcap
この環境変数は,コマンドオプション-P使用時には必須である。 決められた書き方によってプリンタに関する情報を保持する。 詳細は,プリンタ出力の節参照。
PAGER
端末出力の場合のページ単位表示コマンドを与える。 この環境変数が定義されていないとDprmoreを使用する。
TEMP
この環境変数はWindowsでのみ使用される。 WindowsではDprは,プリンタ出力の場合, 出力を一時ファイルに格納する。 コマンドオプション-Tが定義されていない場合に, この一時ファイル格納ディレクトリ名を与える。
Didatautf
UTF入出力機能参照。 出力は,常にロケールの文字コードとなる。

プリンタ出力

Dprは,一時的なテキストファイルを (UNIXの場合パイプライン出力に)作成して これをコマンドによってプリンタに送る。 このためのコマンドについて知る必要がある。 Windowsではこのコマンドはlpr(Windows NT4.0以降)であり, UNIXではlpまたはlprコマンドである。 (これら以外でもプリンタ出力のできるコマンドであればよい)。 このコマンドはテキストファイル (UNIXの場合は標準入力から)を入力して, 固定ピッチフォントでプリンタにプリントできなければならない。

さらに,そのコマンドによって 1ページあたり何行何カラム印字されるかを知る必要がある。 この数字はプリンタのマニュアルにあるかもしれないが, パターンをプリントしてみて数える方法もある。 カラム数は,フォントのASCII文字のピッチを単位として 数える。

環境変数Dprintcap はSEMICOLON(:)で区切られた 1つ以上のエントリを持つ。 各エントリには,COLON(:)で区切られた 5つのフィールドを持つ。 これらのフィールドは位置によって識別され, nametypecolumnsrows および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のshDprintcap環境変数をセットする。

Dprintcap="LBP0:t:106:76:lp -d LBP0"
export Dprintcap

UNIXのcshDprintcap環境変数をセットする。

setenv Dprintcap "LBP0:t:106:76:lpr -PLBP0"

Dファイル"list.d"をLBP0と名付けたプリンタに出力する。

Dpr -P LBP0 list.d

メッセージ

マニュアル D_msg参照。

参照

DintroD_fmtD_msg

AUTHOR

MIYAZAWA Akira


miyazawa@nii.ac.jp
2003