|目次|前ページ|次ページ| ────────────────────────────────────── ────────────────────────────────── ◆ ビットマップ白黒反転操作%%%29-apr-2001%%% ※ この機能は主にプリンタ出力の為のものです。 ESC[500;DeviceModeG ----出力デバイスを指定 DeviceMode=0 : 画面の行桁でテキスト位置を計算 DeviceMode=1 : プリンタのメインフォント行桁でテキスト位置を計算 DeviceMode=2 : プリンタの現在フォント行桁でテキスト位置を計算 *** (xw,yh)=(1桁ドットサイズ,1行ドットサイズ)が決定されます ESC[501;mode;textx1;texty1;dotx1;doty1G ----左上座標 ESC[502;mode;textx2;texty2;dotx2;doty2G ----右下座標 <esc>[574;0 G 指定領域の白黒反転 ────────────────────────────────── ◆ テキスト位置指定で小数点 ESC[501;mode;textx1;texty1;dotx1;doty1G ----直線の開始座標 ESC[502;mode;textx2;texty2;dotx2;doty2G ----直線の終了座標 ESC[503;mode;textcx;textcy;dotcx;dotcyG ----中心座標 ESC[504;mode;textrx;textry;dotrx;dotryG ----半径 ────────────────────────────────── ESC[601;mode;textdx;textdy;dotdx;dotdyG ----転送先左上座標 ESC[602;mode;textwx;textwy;dotwx;dotwyG ----転送先幅 ESC[603;mode;textsx;textsy;dotsx;dotsyG ----ソース左上座標 ESC[604;mode;zoomwx;zoomwy;zoomdotwx;zoomdotwyG ----ソース幅 ────────────────────────────────── ※ 位置はモード設定(デフォルト)により左右上下マージン値が加算されます。 ※ 位置設定のモード(mode=256 及び mode=512)を追加します。 ────────────────────────────────── mode = 256 : dotx?,doty? はテキスト位置の1/100単位で指定 textx? : テキスト桁位置 texty? : テキスト行位置 dotx? : 1/100単位テキスト位置(x方向) doty? : 1/100単位テキスト位置(y方向) ────────────────────────────────── mode = 512 : dotx?,doty? はテキスト位置の1/1000単位で指定 textx? : テキスト桁位置 texty? : テキスト行位置 dotx? : 1/1000単位テキスト位置(x方向) doty? : 1/1000単位テキスト位置(y方向) ────────────────────────────────── <esc>%29;mode;x;y;dotx;doty sp P %%%20-mar-2001%%% 現在プリント位置の設定。 ※ 位置設定のモード(mode=256 及び mode=512)を追加します。 ※ <esc>[500;DeviceMode G シーケンスでDeviceModeを設定要 ────────────────────────────────── mode = 256 : dotx,doty はテキスト位置の1/100単位で指定 x : テキスト桁位置 y : テキスト行位置 dotx : 1/100単位テキスト位置(x方向) doty : 1/100単位テキスト位置(y方向) ────────────────────────────────── mode = 512 : dotx,doty はテキスト位置の1/1000単位で指定 x : テキスト桁位置 y : テキスト行位置 dotx : 1/1000単位テキスト位置(x方向) doty : 1/1000単位テキスト位置(y方向) ────────────────────────────────── ◆ プリントダイアログの初期化情報を変更する ※予め用紙方向を横にしておきたい時などで使用します <esc>%59;edit1 sp F<$で区切られた環境情報の内容><CR> <esc>%59;edit2 sp F<$で区切られたデバイス情報の内容><CR> -------------------------------- 編集番号(edit2)の内容(デバイス情報) -------------------------------- [1]デバイスドライバ名 $ [2]デバイスの名前 $ [3]ポート名 ※例えば winspool$NEC PR-201H$LPT1: の様に設定 ※ドライバ/デバイス/ポートを確かめるにはWindowsプリンタ照会でどうぞ! -------------------------------- ダイアログの初期化情報を更新する -------------------------------- <esc>%27;edit1;edit2 sp P %%%[02-apr-2001]%%% edit1 = 0 : デフォルトのまま(通常) [注意]※これ以降デバイスモードは(デフォルト値)となってしまいます edit1 = 1 -> 45 : 編集番号(edit1)の内容で変更設定する edit2 = 0 : デフォルトのまま(通常使うプリンタ) [注意]※これ以降デバイスネームは(通常使うプリンタ)となってしまいます edit2 = 1 -> 45 : 編集番号(edit2)の内容でデバイス選択する ----------------<<< 仕様変更 >>>-------------------------- ※(以前のversionでは)edit1 = 0 の場合edit2=0とみなしていましたが edit1,edit2の何れか一方が 0以外の場合はその値が設定されます ※このシーケンスは従来互換の為に残してあります。 ----------------<<< 仕様追加 >>>-------------------------- <esc>%28;edit1;edit2 sp P %%%[02-feb-2002]%%% edit1 = 0 : ※直前の設定のまま edit1 = 1 -> 45 : 編集番号(edit1)の内容で変更設定する edit2 = 0 : ※直前の設定のまま edit2 = 1 -> 45 : 編集番号(edit2)の内容でデバイス選択する ※デバイスモード又はデバイスネームを置き換えする場合に使用します ※edit1,edit2の何れか一方が 0以外の場合はその値が設定されます ※このシーケンスでは(デフォルト値)や(通常使うプリンタ)に リセットされることはなく直前の設定値が有効です。 ※デバイスモードは一部分の置き換えが可能ですがデバイスネームは 全て同時に置き換えが必要です。 ----------------<<< 以上変更点 >>>------------------------ -------------------------------- 編集番号(edit1)の内容(環境情報) -------------------------------- [1]デバイスの名前 $ [2]用紙方向 $ [3]用紙サイズ $ [4]用紙長さ $ [5]用紙幅 $ [6]スケーリング係数 $ [7]コピー部数 $ [8]プリンタ解像度 $ [9]カラーモノクロ $ [10]両面印刷の方法 $ [11]y方向解像度[12]TrueTypeフォントの印刷方法 $ [13]頁の丁合い $ [14]用紙の形状 ※nullを指定したフィールドはデフォルトのままとなります (以前に設定した値ではありません。コントロールパネル設定値です) ----------------------------------------------- [1]デバイスの名前 ex. PCL/HL Laserjet の様に指定 ドライバーがサポートしているデバイスの名前 [2]用紙方向(用紙の向きを指定します。) ポートレイト --> 1 ランドスケープ --> 2 [3]用紙サイズ(印刷する用紙のサイズを指定します。) 用紙の長さと幅が、 それぞれ[4]用紙長さ と [5]用紙幅メンバにより 設定されている場合は、 このメンバに0を設定できます。 それ以外の場合は、 次に示す定義済みの値のいずれかを 設定することができます。 ----------------------------------------------- 値 意味 ----------------------------------------------- 1 DMPAPER_LETTER Letter、 8 1/2×11インチ 2 DMPAPER_LEGAL Legal、 8 1/2×14インチ 3 DMPAPER_A4 A4シート、 210×297ミリメートル 4 DMPAPER_CSHEET Cシート、 17×22インチ 5 DMPAPER_DSHEET Dシート、 22×34インチ 6 DMPAPER_ESHEET Eシート、 34×44インチ 7 DMPAPER_LETTERSMALL Letter Small、 8 1/2×11インチ 8 DMPAPER_TABLOID Tabloid、 11×17インチ 9 DMPAPER_LEDGER Ledger、 17×11インチ 10 DMPAPER_STATEMENT Statement、 5 1/2×8 1/2インチ 11 DMPAPER_EXECUTIVE Executive、 7 1/4×10 1/2インチ 12 DMPAPER_A3 A3シート、 297×420ミリメートル 13 DMPAPER_A4SMALL A4 smallシート、 210×297ミリメートル 14 DMPAPER_A5 A5シート、 148×210ミリメートル 15 DMPAPER_B4 B4シート、 250×354ミリメートル 16 DMPAPER_B5 B5シート、 182×257ミリメートル 17 DMPAPER_FOLIO Folio、 8 1/2×13インチ 18 DMPAPER_QUARTO Quarto、 215×275ミリメートル 19 DMPAPER_10X14 10×14インチ シート 20 DMPAPER_11X17 11×17インチ シート 21 DMPAPER_NOTE Note、 8 1/2×11インチ 22 DMPAPER_ENV_9 #9 Envelope、 3 7/8×8 7/8インチ 23 DMPAPER_ENV_10 #10 Envelope、 4 1/8×9 1/2インチ 24 DMPAPER_ENV_11 #11 Envelope、 4 1/2×10 3/8インチ 25 DMPAPER_ENV_12 #12 Envelope、 4 3/4×11インチ 26 DMPAPER_ENV_14 #14 Envelope、 5×11 1/2インチ 27 DMPAPER_ENV_DL DL Envelope、 110×220ミリメートル 28 DMPAPER_ENV_C5 C5 Envelope、 162×229ミリメートル 29 DMPAPER_ENV_C3 C3 Envelope、 324×458ミリメートル 30 DMPAPER_ENV_C4 C4 Envelope、 229×324ミリメートル 31 DMPAPER_ENV_C6 C6 Envelope、 114×162ミリメートル 32 DMPAPER_ENV_C65 C65 Envelope、 114×229ミリメートル 33 DMPAPER_ENV_B4 B4 Envelope、 250×353ミリメートル 34 DMPAPER_ENV_B5 B5 Envelope、 176×250ミリメートル 35 DMPAPER_ENV_B6 B6 Envelope、 176×125ミリメートル 36 DMPAPER_ENV_ITALY Italy Envelope、 110×230ミリメートル 37 DMPAPER_ENV_MONARCH Monarch Envelope、 3 7/8×7 1/2インチ 38 DMPAPER_ENV_PERSONAL 6 3/4 Envelope、 3 5/8×6 1/2インチ 39 DMPAPER_FANFOLD_US US Std Fanfold、 14 7/8×11インチ 40 DMPAPER_FANFOLD_STD_GERMAN German Std Fanfold、 8 1/2×12インチ 41 DMPAPER_FANFOLD_LGL_GERMAN German Legal Fanfold、 8 1/2×13インチ ---------------------------------------------------- [4]用紙長さ 用紙の長さを[3]用紙サイズで指定された長さよりも 優先して指定します。 このパラメータは、 カスタムの用紙サイズを利用する場合や、 任意のサイズのページ上に印刷できるドット マトリックス プリンタなどのデバイスを利用する場合に使います。 これらの値は、 この構造体の中で物理長を指定する、 ほかのすべての値と同じように、 10分の1ミリメートル単位で 指定します。 [5]用紙幅 用紙の幅を[3]用紙サイズで指定された用紙の幅よりも 優先して指定します。 [6]スケーリング係数 印刷出力をスケーリングする際の係数を指定します。 見かけ上の用紙サイズは、 物理的な用紙サイズを [6]スケーリング係数 / 100の係数でスケーリングした値になります。 たとえば[6]スケーリング係数の値が50のレター サイズの用紙では、 出力されるテキストやグラフィックの高さと幅が元のサイズの 半分になるため、 用紙サイズが17インチ × 22インチの用紙と 同じ量のデータが含まれます。 [7]コピー部数 デバイスが複数ページのコピー印刷をサポートする場合に、 印刷する部数を指定します。 [8]プリンタ解像度 プリンタの解像度を指定します。 デバイスに依存しない値として、 次の4つの定義済みの値があります。 DMRES_HIGH --> -4 DMRES_MEDIUM --> -3 DMRES_LOW --> -2 DMRES_DRAFT --> -1 正の値を指定した場合はインチ当たりのドット数 (DPI) を示すため、 デバイスに依存する値になります。 [9]カラーモノクロ カラー プリンタでカラーを出力するかモノクロを出力するか を指定します。設定可能な値を次に示します。 DMCOLOR_COLOR --> 2 DMCOLOR_MONOCHROME --> 1 [10]両面印刷の方法 両面印刷が可能なプリンタの場合に両面印刷の方法を選択 します。設定可能な値を次に示します。 DMDUP_SIMPLEX --> 1 DMDUP_HORIZONTAL --> 3 DMDUP_VERTICAL --> 2 [11]y方向の解像度 プリンタのy方向の解像度をDPIで示します。 [12]TrueTypeフォントの印刷方法 TrueType(R) フォントの印刷方法を指定します。 このメンバは、 次の値のいずれかになります。 値 意味 ---------------------------------------------------- 1 DMTT_BITMAP TrueTypeフォントをグラフィックとして 印刷します。ドット マトリックス プリンタでは、 これがデフォルトの動作 になります。 2 DMTT_DOWNLOAD TrueTypeフォントをソフト フォント としてダウンロードします。 Printer Control Language (PCL) を 使用するHewlett-Packardプリンタでは、 これがデフォルトの動作になります。 3 DMTT_SUBDEV TrueTypeフォントをデバイス フォント で代替します。PostScript(R) プリンタ では、 これがデフォルトの動作になります。 ---------------------------------------------------- [13]頁の丁合い 複数部数を印刷する際に、 ページの丁合いを行うかどうかを 指定します。このメンバは、 次の値のいずれかになります。 ---------------------------------------------------- 値 意味 ---------------------------------------------------- 1 DMCOLLATE_TRUE 複数部数の印刷時にページの丁合い を行います。 2 DMCOLLATE_FALSE 複数部数の印刷時にページの丁合い を行いません。 ---------------------------------------------------- DMCOLLATE_FALSEを使った場合には、 より高速で効率のよい 印刷が行えます。これは、 要求される印刷部数に関係なく、 ページ プリンタにデータを送る回数が1回だけで済み、 ページを再度印刷するという指示だけがプリンタに与えら れるためです。 [14]用紙の形状 "Letter" や "Legal" などの用紙の形状を指定します ────────────────────────────────── ◆ 印刷ダイアログボックスの結果取得機能を追加 ────────────────────────────────── ※ <esc>[5i 直後に印刷ダイアログボックスのモード設定時取得可能です ※ プログラミングは W $C(27)_"[5i" R X の様になります <<<戻り値は以下の様になります。>>> <esc>[$;yesno;driver;devicename;port;status;Mode;$<CR>-> 選択結果(mode-A) yesno;driver;devicename;port;status;Mode;<CR> -> 選択結果(mode-B) yesno -> 0:印刷ダイアログボックスは<キャンセル>されました ※この場合プリンタはオープンされません※ 1:印刷ダイアログボックスは<OK>されました ※この時プリンタはオープン後です※ driver -> 印刷ドライバのファイル名 devicename -> プリンタデバイス名 port -> ポート名 ----------<<<以下[08-feb-2002]追加された部分です>>>------- status -> 1:okされた 2:Cancelされた (3以上は将来のコード) Mode -> Windowプリンタのモード番号(9:テキスト,11:非GDI) モード設定は以下の様になります。 <esc>%15;dlg;mode sp P -> 印刷ダイアログボックスのモード設定 dlg -> 0:印刷ダイアログボックスは表示せず、通常使うプリンタに印刷される 1:印刷ダイアログボックスを表示 255:印刷ダイアログボックスを表示しその選択結果を取得します ※ このモード設定の場合は印刷ダイアログボックスで<キャンセル>した 場合は、<esc>[4i迄読み飛ばしの設定をしても無視され 常に画面表示モードとなります。 mode -> 0:選択結果(mode-A)のフォーマットで戻り値(1以外の時) 1:選択結果(mode-B)のフォーマットで戻り値 ────────────────────────────────── ◆ プリンタオープンしない印刷ダイアログボックスの結果取得機能を追加 ────────────────────────────────── <esc>%511;mode sp P -> 印刷ダイアログボックスのモード設定 mode -> 0:選択結果(mode-A)のフォーマットで戻り値(1以外の時) 1:選択結果(mode-B)のフォーマットで戻り値 <<<戻り値は以下の様になります。>>> <esc>[$;yesno;driver;devicename;port;status;Mode;$<CR>-> 選択結果(mode-A) yesno;driver;devicename;port;status;Mode;<CR> -> 選択結果(mode-B) yesno -> 0:印刷ダイアログボックスは<キャンセル>されました ※この場合プリンタはオープンされません※ 1:印刷ダイアログボックスは<OK>されました ※この時プリンタはオープン後です※ driver -> 印刷ドライバのファイル名 devicename -> プリンタデバイス名 port -> ポート名 ----------<<<以下[08-feb-2002]追加された部分です>>>------- status -> 1:okされた 2:Cancelされた (3以上は将来のコード) Mode -> Windowプリンタのモード番号(9:テキスト,11:非GDI) ────────────────────────────────── ◆ <esc>%11spF <esc>%13spF をサポート ※dosプリンタのみ動作していましたが、Windowsプリンタでも動作 する様に機能追加しました(全てのモードでサポート) [1] <esc>%11spF --> SJIS プリンタとして印刷 [2] <esc>%13spF --> 透過 プリンタとして印刷 ※<esc>[5i 同様に印刷ダイアログボックスのモード設定が有効となります ※ <esc>%6spF でプリンタがクローズされます。 ────────────────────────────────── ◆ <esc>%512;mode;index sp P をサポート ※全プリンタを列挙する。 ◆ <esc>%513;mode;index sp P をサポート ※全ローカルプリンタを列挙する。 ※但し、Windows95,98 では、ネットワークプリンタも列挙する。 mode -> 0:選択結果(mode-A)のフォーマットで戻り値(1以外の時) 1:選択結果(mode-B)のフォーマットで戻り値 index -> 0: プリンタ個数を返す >0: index個目のプリンタ情報を返す <<<戻り値は以下の様になります。>>> <esc>[$;Err;Index;Cnt;Server;PrinterName;PortName;DriverName ;PrintProcessor;Datatype;Atributes;Status; ;cJos;AveragePPM;$<CR> -> 選択結果(mode-A) Err;Index;Cnt;Server;PrinterName;PortName;DriverName ;PrintProcessor;Datatype;Atributes;Status; ;cJos;AveragePPM;<CR> -> 選択結果(mode-B) ※index=0 の時 Err Cnt のみを返す。 (1)Err --> 0:エラー 1:正常終了 (2)Index --> 1からの位置(最大Cntまで) index=0 の時は 0 index > Cnt の時は -1 (Err=0) (3)Cnt --> 全体のプリンタ個数 (4)Server --> プリンタを操作するサーバー名 (5)PrinterName --> プリンタを表す文字列 (6)DriverName --> プリンタドライバを表す文字列[07-feb-2002] (7)PortName --> ポートを識別する文字列[07-feb-2002] (8)PrintProcessor --> プリンタが利用するプロッセッサ名(ex. winspool) (9)Datatype --> 印刷ジョブを記録する際利用されるデータタイプ(ex. raw) (10)Atributes --> プリンタ属性 (11)Status --> プリンタの状態 (12)cJos --> 印刷ジョブ数 (13)AveragePPM --> 1分間当たりに印刷されたページ数の平均 ────────────────────────────────── ◆ dos/非GDIモード/ポストスクリプト・プリンタ機種選択変更機能を追加 ────────────────────────────────── <esc>%76;printer sp F -> プリンタ機種選択変更 mode -> 0:ESC/Pシーケンス ※日本語変換有 1:PR201シーケンス ※日本語変換有 2:IBM(SJIS) ※SJIS 3:透過 ※日本語変換無(新設) ※ [3:透過]に設定した場合は、<esc>[5i...<esc>[4i 出力時は意図した とうりに動作しますが、<control/f4>の画面同時印刷ではsjisを 受け付けるプリンタでなければ漢字が化けます。 サーバーのプログラムで漢字コード変換を行う場合に使用します。 ────────────────────────────────── ◆ Windowsプリンタ[非GDIモード]を新規にサポート ────────────────────────────────── ※ [SETUP(E)]->[※dos/winプリンタ]->[Windowsプリンタ[非GDIモード]ESC/P,PR201等] VCOM汎用印刷エンジンは使用できません。 ESC/P,PR201やラベルプリンタ等に対して、WindowsGDIを使用せず、 文字コードやシーケンスのみを出力する場合に利用します。 切り替えシーケンスも追加されました。 ※ プリンタサーバやUSB経由のDOSプリンタに印刷ダイアログボックスを可能 にして対応しています。(ポート名は、LPT1:,LPT2:,...でなくても可) <esc>%72;mode;font sp F -> Windowsプリンタモード設定 mode -> 0:dos経由(LPTnポート) ※フォント設定は意味がありません 1:Windows[プリンタ依存ビットマップ] 2:Windows[カラービットマップ] 3:Windows[モノクロビットマップ] 9:※Windows[テキストモード](通常)※ 10:Windows[ポストスクリプト/スルーモード] 11:Windows[非GDIモード] (新設) ※ [印刷ダイアログボックス]を使用するに設定されていると、 <esc>[5i出力時、印刷ダイアログボックスが表示されプリンタ設定が変更 出来ます。 この際、印刷ダイアログボックスに表示される初期値を予め設定変更 しておくことが出来ます。(VCOM汎用印刷エンジンと同じ) ※ [印刷dislogbox]->[デフォルトプリンタを使用]に設定されていると、 印刷ダイアログボックスは表示されず、通常使うプリンタに印刷されます。 ────────────────────────────────────── 55-1 |目次|前ページ|次ページ|