Dpr - 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。 k/p>

AUTHOR

MIYAZAWA Akira


miyazawa@nii.ac.jp
2003