|目次|前ページ|次ページ|
──────────────────────────────────────
──────────────────────────────────
◆ ビットマップ白黒反転操作%%%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
|目次|前ページ|次ページ|