■                                                                    ■
■                ドットマトリクスプリンタ汎用ドライバ                ■
■                         dmprt version 2.01                         ■
■                   for Ghostscript version 4.03                     ■
■                                                                    ■
■                              淺山和典                              ■
■                        TPM03937@pcvan.or.jp                        ■
■                     GHF01532@niftyserve.or.jp                      ■
■                    asayama@vsp.cpg.sony.co.jp                      ■
■                                                                    ■

========================================================================
● １． ファイル構成
========================================================================

  このパッケージには次のファイルが含まれています。本ドキュメント中で「本
パッケージ」という場合にはこれら全てのファイルを指しているものとします。

          COPYING      GNU General Public License
          gdevdmpr.sj  このファイル(Shift JIS)
          gdevdmpr.c   プリンタドライバのソースファイル
          dviprlib.c         〃
          dviprlib.h         〃
          gdevdmpr.mak Makefile
          escp_24.src  dviprtのプリンタ定義ファイルのサンプル
          dmp_init.ps  初期化ファイル
          dmp_site.ps  環境設定ファイルのサンプル
          testpage.ps  位置合わせテスト用のPSファイル

========================================================================
● ２． 概要
========================================================================

  このプリンタドライバは、ビットマップイメージの印字のためのプリンタ命令
をユーザが定義できるようにし、出来る限り多くの種類のプリンタに対応できる
ようにしたものです。

  プリンタコードの定義は、MS-DOS 上で広く用いられている TeX 用プリンタド
ライバ dviprt.exe のプリンタ定義ファイル (拡張子.cfg)、またはそのソース
ファイル (拡張子.src) を用いる、という方法で行います。

    ※  プリンタ定義ファイルの書式については dviprt のテクニカルマニュア
      ル texjman.tex (ver. 2.42 以降) をご覧ください。tex???ma.lzh(???
      はバージョン番号) というファイル名で配布されています。

    ※  dviprt のプリンタ定義ファイルの仕様がバージョン 2.41.8 以降で拡
      張されました。dmprt の本バージョンではこの新しい仕様にも対応してい
      ます。

    ※  dviprt.exe は TSG(東京大学理論科学グループ) 及び PC-VAN SSCIENCE
      の SHIMA さんによる TeX 用プリンタドライバです。PC-VAN では
      SSCIENCE の OSL、Nifty Serve では FLABO のライブラリの 11 番 (TeX
      専用)、ASCII NET では pool msdos で入手可能です。また annonymous
      FTP でも入手できます。

    ※  プリンタ定義ファイルは dviprt.exe のユーティリティパッケージ
      tex???ut.lzh (??? はバージョン番号) に含まれています。

    ※  dviprt v2.42 の時点で配布パッケージに含まれているプリンタ定義フ
      ァイルは以下のとおりです。

      これら全てのプリンタでの動作確認が出来ているわけではありません。こ
      れらのプリンタの中で正常に印字出来ない場合にはご連絡ください。出来
      る限り対処します。

       ap850.src    EPSON AP-850/MJ-500用 (48ドット)
       ap900.src    EPSON AP-900用 (360dpi)
       art.src      Xerox ART mode (240dpi)
       art2.src     Xerox ART2 mode (240dpi, Hex mode)
       bj_10v48.src Canon BJ-10/BJ-15用 (48ドット)
       bj_130j.src  Canon BJ-130J/BJ-330J用 (48ドット)
       dj500.src    HP DeskJet 500用 (300dpi)
       dj505j.src   HP DeskJet 500J/300J/505J/505J plus用 (300dpi)
       dj505j1.src  HP DeskJet 505J plus用 (300dpi PCL mode1 圧縮)
       dj505j2.src  HP DeskJet 505J plus用 (300dpi PCl mode2 圧縮)
       dvi2pbm.src  raw PBM 出力用 (118dpi)
       epsimage.src Encapsulated PostScript(TM) Image 出力用(118dpi)
       escp_24.src  EPSON ESC/P (24ドット)プリンタ用
       escp_48.src  EPSON HG-4800用 (48ドット)
       escp_48a.src EPSON HG-5130用 (48ドット, 隣接ドット可)
       escp_8.src   EPSON ESC/P (8ピン)用
       fmpr-351.src Fujitsu FMPR-351用 (48ドット)
       g3fax.src    G3 FAX用(200dpi, Header なし)
       hl_8e.src    Brother HL-8e用 (300dpi)
       hp_djp.src   HP DeskJet Plus用 (300dpi)
       hp_ljp.src   HP LaserJet Plus用 (300dpi)
       jt48escp.src Star JT-48 ESC/P (48 ドット)
       jt48nm.src   Star JT-48CL/NM (48 ドット)
       lbp-b406.src Canon LBP-B406用(240dpi)
       lbp8_240.src Canon LBP-8/LIPS II用 (240dpi)
       lbp8_300.src Canon LBP-8/LIPS II用 (300dpi)
       lcs240.src   Casio LCS-240用 (240dpi)
       lips3.src    Canon LIPS III用
       lp3000.src   EPSON LP-3000(2000)用
       lp7000.src   EPSON LP-7000用
       lp_rpdl.src  RICOH LP3320-SP4 mark2
                        / LP2310-SP5 (RPDL)用 (240dpi)
       l_880.src    Kyocera L-880用 (300dpi)
       nec_page.src NEC PC-PR2000用
       nec_pgr.src  NEC PC-PR1000,2000,4000用 (240dpi)
       nec_pgr4.src NEC PC-PR2000,4000用 (400dpi)
       nm_24.src    NEC NM(24ドット)用
       pc-pr101.src NEC PC-PR101用(24ドット)
       pc-pr_24.src NEC PC-PR(24ドット)用
       pc150v48.src NEC PC-PR150V(48ドット)用
       pc8821.src   NEC PC-8821(16ドット)用
       pc_pr406.src NEC PR406LM(48ドット)用
       pc_pr602.src NEC PC-PR602R用 (240dpi)
       pr_130ax.src SANYO PR_130AX, TOSHIBA PR-48(J31DPR02)用 (180dpi)
       pr-48.src    Toshiba PR-48 (360dpi)
       r98_dma.src  RICOH LP3320-SP4 R98 emulation mode
                        Direct Memory Access
       rpdl_dma.src RICOH LP3320-SP4 Direct Memory Access (240dpi)
       smdfax.src   SONY SMD50/70 シリーズFAX (200dpi)
       starfax.src  Starfax用 (200dpi)


========================================================================
● ３． 動作環境
========================================================================

  ソースファイルは基本的に非機種依存のつもりで書いてあります (ただし
FreeBSD 上でしか動作確認はおこなっていません)。

  このドライバを組み込むことが出来る Ghostscript のバージョンですが、
Ghostscript の本体とデバイスドライバとのインタフェースが Ghostscript
version 4.03 と同様のものならば可能です (2.6.x には組み込めません。
2.6.x では従来のものを用いて下さい)。


========================================================================
● ４． 導入の手順
========================================================================
  ここでは dmprt が組みこんである実行可能形式の gs が既に手元にあるもの
として説明します。コンパイルが必要な場合はこのドキュメント末尾の「コンパ
イル」の項目を参照してください。

  dmprt はおおよそ汎用のプリンタドライバですから、逆に言うとユーザが設定
をおこなってやらないと正しく動作してくれません。

  以下の作業を行います。

(1) 環境設定ファイルの編集
(2) 環境設定ファイルの指定

-----------------------
★ 4.1 環境設定ファイル
-----------------------

  環境設定ファイルでは、プリンタの機種別情報などを指定します。また、印字
位置の補正などが必要ならばさらにそれを指定します。


-----------------------------
★ 4.2 環境設定ファイルの書式
-----------------------------

  環境設定ファイル dmp_site.ps の大まかな書式を説明します。項目別の詳細
な書式は各項目の説明を参照してください。

(1) 設定ファイルの開始・終了コマンド

      付属の dmp_site.ps の最初と最後の行にある 「BeginConfig」 と
    「EndConfig」 という文字列のことです。設定ファイルの最初と最後の行
    にそれぞれこれらの文字列がある必要があります。付属の dmp_site.ps を
    編集して使う場合には、これらの行を削除しないようにしてください。

(2) コメント

      '%' 以降行末まではコメントとして無視されます。

(3) 論理値 (スイッチ)

      true (真 / on) 又は false (偽 / off) のどちらかの値です。

(4) 文字列

      '(' と ')' で囲まれたものが文字列です。これらの括弧の間には余分な
    空白を含めてはいけません。

(5) 長さ
      dmp_site.ps の中で「長さ」で指定する項目では単位を付けることが出来
    ます。使用できる単位は、

     ・ in  インチ
     ・ cm  センチメートル
     ・ mm  ミリメートル
     ・ pt  ポイント (1/72.27 インチ)
     ・ bp  ビッグポイント (1/72 インチ)
     ・ dot ドット

    です。単位が指定されない場合は「インチ」を単位として処理します。

      単位を指定する場合には、数値との間に空白文字を少なくとも一つ挿入し
    てください。空白文字が数値との間にない場合、うまく解釈できません。

      (e.g.)  /defaultsize [ 576 bp 792 bp ]


    ※環境設定ファイルは実際には PostScript プログラムとして実行され解釈
      されています。従って、環境設定ファイル中では PostScript 言語が許す
      記述は基本的に許されます。

      ただし、その場合に作業の都合上辞書に登録を行なう必要がある場合には
      環境設定ファイル中でローカルな辞書を作って、その辞書に対して登録を
      行なってください (dictfull エラーや思わぬ副作用が起きる可能性があ
      ります)。また、オペランドスタックや辞書スタックを破壊しないように
      十分に気を付けてください (ゴミを残さないように!!)。

      環境設定ファイル中では Level 2 のオペレータは使わないようにしてく
      ださい。

-----------------------------
★ 4.3 環境設定ファイルの項目
-----------------------------

  環境設定ファイル dmp_site.ps は以下の項目とコメントからなっています。

 /printer     dviprtのプリンタ定義ファイル
 /resolution  解像度
 /offset      原点移動量
 /defaultsize デフォルトの用紙サイズ
 /margin      印字不可能領域
 /maxsize     印字可能領域の最大範囲
 /verbose     おしゃべりモード(^^;

  これらは全て省略可能な項目です。ただし、/printer を設定しない場合には
ESC/P 24 pins のプリンタコードを用いて出力しますので、これに該当しないプ
リンタを使用する場合には最低限この項目は設定してください。

  以下に各項目の指定法を説明します。各項目は行単位で指定し、重複した指定
は最初の指定のみが有効となります。また、設定ファイル中の文字は全て大文字、
小文字が区別されますので注意してください。

(1) /printer

     ・ 《指定法》

          /printer (ファイル名)

          dviprt の *.cfg/*.src のファイル名を文字列で指定します。拡張子
        の省略はできません。

          MS-DOS 上で使用する場合、ディレクトリの区切りには '\' ではなく
        '/' を用いるようにしてください。

     ・ 《指定例》

          /printer (/usr/local/lib/tex/dviprt/escp_24.cfg)

     ・ 《説明》

          dviprt.exe で用いられるプリンタ定義ファイルまたはそのソースフ
        ァイルを指定します。

          ここで指定されたファイルは

        (A) Ghostscript のライブラリ検索 (use.doc の File searching の項
            目を参照) に従った検索
        (B) 指定されたファイル名を環境変数 TEXCFG に設定されたディレクト
            リ名に連結したファイル名のファイル (環境変数が設定されている
            場合のみ)

        の順に探されます。

          このファイルは使用するプリンタの機種にあったものを用意する必要
        があります。

          dviprt は大変多くのユーザを持っているためありがたいことにたく
        さんのプリンタ定義ファイルが既に作成・公開・配布されています。ま
        ずは dviprt のユーティリティパッケージ tex???ut.lzh に目的のプリ
        ンタ定義ファイルが無いかどうか確かめてください。

          運悪くご使用のプリンタ用のプリンタ定義ファイルが tex???ut.lzh
        に含まれていない場合、そのソースファイルはテキストファイルですの
        でエディタで作成することが出来ます。

          プリンタ定義ファイルのソースファイルとそれをコンバートしたバイ
        ナリファイルとはその内容から自動判別しています。

(2) /resolution

     ・ 《指定法》

          /resolution [ 横の解像度 縦の解像度 ]

        dot/inch(dpi) 単位での実数表現。

     ・ 《設定例》

          /resolution [ 160 180 ]

     ・ 《説明》

          解像度を指定します。通常はプリンタ定義ファイルに記録してあるプ
        リンタ固有の解像度を参照しますのでこの項目の設定は必要ありません
        が dviprt のプリンタ定義ファイルは縦横の解像度が同じであることを
        仮定していますのでこれに該当しないプリンタ (縦横の解像度が異なる
        プリンタ) では実行毎に (Ghostscript の)-r オプションを指定しなけ
        ればなりません。また、解像度が記録されていない古いバージョンのプ
        リンタ定義ファイルを使用する場合でも同様です。

          解像度の優先順位は、

        (A) Ghostscript 起動時の -r オプションによる指定
        (B) 環境設定ファイル中の "/resolution" の項目による指定
        (C) プリンタ定義ファイル中の解像度
        (D) 180dpi(デフォルト)

        です。

(3) /offset

     ・ 《設定法》

          /offset  [ 横の移動量 縦の移動量 ]

        長さによる指定。

     ・ 《設定例》

          /offset [ 0.0 -0.2 ]

     ・ 《説明》

          原点 (出力イメージの左下角) の横 / 縦方向の移動量を指定します。

          印字可能領域の枠から覗いて見える部分がここで指定された分だけ平
        行移動する、というイメージを持っていただけばいいでしょう。

          用紙右、上方向がそれぞれの正方向です。

          省略された場合は縦横双方向 0 インチです。

          このパッケージには位置合わせのための PS ファイル (testpage.ps)
        が付属しています。このファイルは用紙の縁から、内側 1.5cm、1inch、
        及び 3cm の位置に 1 dot 幅の細い線で枠を書くだけのものです。

          testpage.ps では用紙サイズは、デバイスドライバの描画範囲に等し
        いものとみなされます。例えば -sPAPERSIZE=b5 というオプションを付
        けて Ghostscript を起動すれば用紙サイズは B5 であると仮定され、
        また、Ghostscript に描画範囲を指定するオプション (-g、
        -sPAPERSIZE) を付けずに起動した場合には、デバイスドライバのデフ
        ォルトの描画範囲が用紙サイズであるとされます。

          -sPAPERSIZE オプションと -g オプションについては Ghostscript
        のドキュメント use.doc をご覧ください。

        例えば、次のようにします。

          gs -dNOPAUSE -sDEVICE=dmprt -sPAPERSIZE=b5 -- testpage.ps

          このファイル testpage.ps の出力位置がずれる場合には正しい位置
        に枠がくるように /offset の値を調節してください。

(4) /defaultsize

     ・ 《設定法》

          /defaultsize  [ 幅 高 ]

        長さによる指定。

     ・ 《設定例》

          /defaultsize [ 8.0 11.0 ]

     ・ 《説明》

          Ghostscript の起動オプションで印字領域の幅・高の指定 (-g オプ
        ション、-sPAPERSIZE オプション) がない場合の印字領域を指定します。

          指定されなかった場合には、幅 8.3 インチ、高 11.7 インチです。

(5) /margin

     ・ 《設定法》

          /margin  [ 左 下 右 上 ]

        長さによる指定。

     ・ 《設定例》

          /margin [ 3.675 mm 12.7 mm 3.675 mm 6.5 mm ]

     ・ 《説明》

          用紙のうちプリンタが印字することが出来ない部分を用紙上下左右の
        端からの長さで指定します。

          ここで指定された領域のイメージはプリンタに出力されません (c.f.
        /maxsize)。

          指定されなかった場合はは上下左右全て 0 インチです。

(6) /maxsize

     ・ 《設定法》

          /maxsize  [ 幅 高 ]

        長さによる指定。

     ・ 《設定例》

          /maxsize [ 8.0 11.0 ]

     ・ 《説明》

          プリンタの印字可能領域の最大サイズを指定します。このサイズから
        はみ出す部分は指定された用紙サイズやマージンにかかわらず出力され
        なくなります (右、上が切れることになります)。

          例えば最大印字可能幅を越えるイメージを送った場合にそのぶんを無
        視せずに次の行に折り返して印字してしまうプリンタを使用している場
        合や、長すぎるページを出力した場合に次の用紙に続きを出力してしま
        う場合などにこの項目を設定してください。

          0 又は負の値は「無限大」を意味します。幅、高さの指定は独立です。
        すなわち例えば幅が 8 インチ、高さが無限大、という指定も可能です。

          (e.g.) /maxsize [ 8.0 0 ]

          指定されなかった場合には縦横双方向が無限大です。

          出力されるイメージのサイズが用紙サイズからマージンを差し引いた
        サイズより大きいときに出力イメージのサイズをここで設定された値に
        置き換えて処理されます (設定された値が 0 以下であればこの置き換
        えは行われません)。

(7) /verbose

     ・ 《設定法》

          /verbose 論理値

     ・ 《設定例》

          /verbose true

     ・ 《説明》

        デバイスドライバの動作状態を詳しく表示するかどうかの指定です。出
        力中のページの通し番号や出力コードのバイト数などが表示されます。

        デフォルトでは false (off) です (何も表示されません)。

        この項目が true (on) に設定してあっても、Ghostscript の起動オプ
        ションで -q オプション (QUIET) が指定してあれば、この項目の設定
        が off の場合と同じ動作をします。

-----------------------------
★ 4.4 環境設定ファイルの指定
-----------------------------
  dmprt ドライバが組み込まれた Ghostscript は起動時に dmp_init.ps 及び
dmp_site.ps を Ghostscript のファイル検索パス上から読み込みます。これら
のファイルは Ghostscript のファイル検索パス上に置いてください。
dmp_site.ps(環境定義ファイル) が見つからなければ読み込みを諦めてデフォル
トの設定 (ESC/P 24 pin) を用います。

  dmp_site.ps の代わりに別のファイルを指定して読み込むことも可能です。
Ghostscript 起動時にそのファイル名を -sDMPCONFIG= ファイル名 のように指
定してください。この場合に指定するファイルを置くディレクトリも
dmp_init.ps などと同様です。

  (e.g.) gs -sDEVICE=dmprt -sDMPCONFIG=dmp_local.ps -dNOPAUSE -- tiger.ps


========================================================================
● ５． 使用法
========================================================================

  dmp_site.ps の設定以外には特別なことを行う必要はありません。gs のデバ
イスとして "dmprt" を指定して起動してください (他のデバイスドライバと同
様の使い方)。

  (e.g.) gs -sDEVICE=dmprt sample.ps


========================================================================
● ６． 謝辞
========================================================================

 ◇ PC-VAN SSCIENCE の FKR さんには 386BSD での利用における不具合を修正
    していただきました。

 ◇ CCITTFax エンコーダの実装にあたっては、そのコードを Godohoji さん及
    び SHIMA さんによる Fax Endode/Decode ライブラリ中のものを元にさせて
    いただきました。

 ◇ そして何より dviprt/dviout という高機能 DVI ドライバを開発・拡張して
    下さった PC-VAN SSCIENCE の SHIMA さんをはじめとする開発者の方々に感
    謝します。


========================================================================
● ７． コンパイル
========================================================================

  以下の手順でコンパイルして下さい。

(1) gdevdmpr.c、dviprlib.c、dviprlib.h を他の Ghostscript のソースと同じ
    ディレクトリに置く。

(2) devs.mak に gdevdmpr.mak の内容を追加する。

(3) *-head.mak 中のマクロ "DEVICE_DEVS?" に "dmprt.dev" を加える。

(4) tar_cat を実行する。

(5) make する。


========================================================================
● ８． 著作権・保証・再配布・改変
========================================================================

  著作権は作者である淺山 (TPM03937@pcvan.or.jp) が保有します。本パッケー
ジに含まれる全てのプログラム及びドキュメントは無保証です。

  保証及び再配布・改変に関する条件は全て GNU General Public License (GNU
GPL) に従います。GNU GPL は付属の COPYING というファイルに記述されていま
す。


========================================================================
● ８． 履歴
========================================================================

1997.5.13.

 ◇ Ghostscript 4.03 に対応。
 ◇ *.src が正しく読み込めない場合 (line_feed, form_feed が未定義の *.src)
    がある不具合を修正。
 ◇ -sDMPSITE の処理が正しくおこなわれていなかった不具合を修正。
 ◇ setpagedevice オペレータで設定可能な設定項目の多くを削除。
 ◇ DJ's GPP への対応を凍結 (開発環境と暇がなくなったため)。
 ◇ testpage.ps が Level 2 でうまく出力できなかった不具合を修正。


                                            淺山 和典 (ASAYAMA Kazunori)
                                                    TPM03937@pcvan.or.jp
                                               GHF01532@niftyserve.or.jp
                                              asayama@vsp.cpg.sony.co.jp
