|目次|前ページ|次ページ|
─────────────────────────────────────
■印刷管理ジョブ(汎用印刷エンジン)使用手引書■
copyright エスアイエム
印刷データをスプールファイルに出力する処理
─────────────────────────────────────
◆汎用印刷エンジン処理手順
[1-1] 標準的な初期化処理
splno <--- スプール番号
setstr=$$VsInit^ZVSLPV0(splno) <<標準的な初期化処理>>
*** スプールに出力します。
[1-2]印刷フォントをダウンロードする
splno <--- スプール番号
dmy=$$VsDownLdF^ZVSLPV0(splno)
<<vcom汎用印刷エンジンで使用するフォントを設定>>
*** スプールに出力します。
*** setupで設定済みのフォントを置き換え(カスタマイズして下さい)
*** ここではサンプルでしかありません。自分用のフォントを設定してください
[1-3]プリンタにグラフィックス描画を可能にする
splno <--- スプール番号
setstr=$$VsGDIEna^ZVSLPV1(splno)
<<プリンタにグラフィックス描画する場合のみ>>
*** この関数はスプールに出力しませんので戻り値の文字列を出力してください。
[1-4] 標準的なフォントオープン処理
splno <--- スプール番号
setstr=$$VsOpenFonts^ZVSLPV1(splno) <<標準的なオープン処理>>
*** スプールに出力します。
[1-5] 印字行桁位置を指定(小数点有を指定可能)
*** この関数はスプールに出力しませんので戻り値の文字列を出力してください。
x <--- 印字桁位置(含む小数点)
y <--- 印字行位置(含む小数点)
setstr=$$VsLcPos^ZVSLPV1(x,y)
<<プリンタメインフォントで印字行桁位置を指定>>
x <--- 印字桁位置(含む小数点)
y <--- 印字行位置(含む小数点)
dotx <--- 印字桁差分ドット数
doty <--- 印字行差分ドット数
setstr=$$VsXYPos^ZVSLPV1(x,y,dotx,doty)(小数点)
<<プリンタメインフォントで印字行桁+−差分ドット位置を指定>>
x <--- 印字桁位置(含む小数点)
y <--- 印字行位置(含む小数点)
setstr=$$VsCurPos^ZVSLPV1(x,y)
<<プリンタ現在フォントで印字行桁位置を指定>>
[1-6] 出力文字列をスプールに出力
dmy=$$VsWrite1^FNCSPLV1(splno,page,y,x,setstr)
<<プリンタにデータ出力>>
[1-7] 標準的なフォントクローズ処理
setstr=$$VsCloseFonts^ZVSLPV1(splno) <<標準的なクローズ処理>>
*** スプールに出力します。
[1-8] 画面にグラフィックス描画モード
setstr=$$VsGDIDis^ZVSLPV1()
<<プリンタにグラフィックス描画する場合のみ>>
*** この関数はスプールに出力しませんので戻り値の文字列を出力してください。
[1-9] 標準的な終了処理
setstr=$$VsTerm^ZVSLPV1(splno) <<標準的な終了処理>>
◆<<<副フォントのダウンロード切替え処理手順>>>
[2-1] 副フォント削除&再設定(次にフォントを選択のこと)
font <- フォント番号(1から64)
LogFont <- LOGFONT構造体にセットする値(NULLの場所は前の値のまま)
[1]FaceName/[2]Height/[3]Width/[4]escapement/[5]orientation/
[6]weight(0,100,200,...,900)/[7]italic/[8]underline/[9]strikeout/
[10]charaset(SJIS=128)/[11]/[12]/[13]quality/[14]pitchandfamily/
setstr=$$VsCngSF^ZVSLPV1(font,LogFont)
*** この関数はスプールに出力しませんので戻り値の文字列を出力してください 。
[2-1] 副フォント印字モードに切替(フォント選択)
font <--- フォント番号(1から64)
setstr=$$VsSubFnt^ZVSLPV1(font) <<カレントフォントが変更されます>>
*** この関数はスプールに出力しませんので戻り値の文字列を出力してください。
◆<<<メインフォントのダウンロード切替え処理手順>>>
[3-1] メインフォント削除&オープン(変更)
LogFont <--- LOGFONT構造体にセットする値(NULLの場所は前の値のまま)
setstr=$$VsCngF0^ZVSLPV1(LogFont)
[3-2] メインフォントの行間/桁間/含む外部リーディングの指定
linedot <--- メインフォントの行間ドット数
columndot <--- メインフォントの桁間ドット数
extleading <--- 含む外部リーディングの指定
(0:含む外部リーディング,1:含まない)
setstr=$$VsMSpace^ZVSLPV1(linedot,columndot,extleading)
*** プリンタオープンの前に設定
[3-2] 副フォントへの切替え(副フォント印字モードに切替)
font <--- フォント番号(1から64)
setstr=$$VsSubFnt^ZVSLPV1(font)
<<<現在フォントはこのフォント番号になります>>>
*** この関数はスプールに出力しませんので戻り値の文字列を出力してください。
◆<<<GDI描画関数>>>
[4-1]直線を描画
(x1+dotx1,y1+doty1) <- 開始点行桁ドット
(小数点有の場合はdotx1,doty1は無視)
(x2+dotx2,y2+doty2) <- 終了点行桁ドット
(小数点有の場合はdotx2,doty2は無視)
p1 <--- 線の色(0:黒)
p3 <--- ペンスタイルの指定(0:無し,1:指定有り)
p4 <--- ペンスタイルのコード(0:実線)
p5 <--- ペンの太さ(>0)
str=$$VsLine^ZVSLPV1(x1,y1,x2,y2,dotx1,doty1,dotx2,doty2,p1,p3,p4,p5)
*** この関数はスプールに出力しませんので戻り値の文字列を出力してください。
[4-2]ボックスを描画
(x1+dotx1,y1+doty1) <- 左上点行桁ドット
(小数点有の場合はdotx1,doty1は無視)
(x2+dotx2,y2+doty2) <- 右下点行桁ドット
(小数点有の場合はdotx2,doty2は無視)
p1 <--- 線の色(0:黒)
p3 <--- ペンスタイルの指定(0:無し,1:指定有り)
p4 <--- ペンスタイルのコード(0:実線)
p5 <--- ペンの太さ(>0)
str=$$VsBox^ZVSLPV1(x1,y1,x2,y2,dotx1,doty1,dotx2,doty2,p1,p3,p4,p5)
[4-3]ボックス塗り潰しを描画
(x1+dotx1,y1+doty1) <- 左上点行桁ドット
(小数点有の場合はdotx1,doty1は無視)
(x2+dotx2,y2+doty2) <- 右下点行桁ドット
(小数点有の場合はdotx2,doty2は無視)
p1 <--- 線の色(0:黒)
p3 <--- パレットスイッチ(0:無し,1:指定有り,2:タイルパタン)
p4 <--- 塗りつぶしに使う(色/タイル番号)
p5 <--- ハッチパタンの時の色
str=$$VsBoxFil^ZVSLPV1(x1,y1,x2,y2,dotx1,doty1,dotx2,doty2,p1,p3,p4,p5)
[4-4]円/楕円を描画
(xc+dotxc,yc+dotyc) <- 中心点行桁ドット
(小数点有の場合はdotxc,dotycは無視)
(xr+dotxr,yr+dotyr) <- 半径行桁ドット
(小数点有の場合はdotxr,dotyrは無視)
p1 <--- 線の色(0:黒)
p2 <--- 塗りつぶし指定(0:無し,1:塗り,2:タイル番号)
p3 <--- 塗りつぶしに使う(色/タイル番号)
p4 <--- 0 を指定
str=$$VsCircle^ZVSLPV1(xc,yc,xr,yr,dotxc,dotyc,dotxr,dotyr,p1,p2,p3,p4)
[4-5]楕円を描画
(xc+dotxc,yc+dotyc) <--- 中心点行桁ドット(小数点可)
(xr+dotxr,yr+dotyr) <--- 半径行桁ドット(小数点可)
(x1+dotx1,y1+doty1) <--- 開始点行桁ドット(小数点可)
(x2+dotx2,y2+doty2) <--- 終了点行桁ドット(小数点可)
p1 <--- 線の色(0:黒)
p2 <--- 塗りつぶし指定(0:無し,1:塗り,2:タイル番号)
p3 <--- 塗りつぶしに使う(色/タイル番号)
p5 <--- 0を指定
str=$$VsElipse^ZVSLPV1(xc,yc,xr,yr,dotxc,dotyc,dotxr,dotyr
,x1,y1,x2,y2,dotx1,doty1,dotx2,doty2,p1,p2,p3,p5)
[4-6]円弧
(xc+dotxc,yc+dotyc) <--- 中心点行桁ドット(小数点可)
(xr+dotxr,yr+dotyr) <--- 半径行桁ドット(小数点可)
(x1+dotx1,y1+doty1) <--- 開始点行桁ドット(小数点可)
(x2+dotx2,y2+doty2) <--- 終了点行桁ドット(小数点可)
p1 <--- 線の色(0:黒)
str=$$VsArc^ZVSLPV1(xc,yc,xr,yr,dotxc,dotyc,dotxr,dotyr
,x1,y1,x2,y2,dotx1,doty1,dotx2,doty2,p1)
[4-7]塗り潰し
(x1+dotx1,y1+doty1) <--- 開始点行桁ドット(小数点可)
c1 <--- 領域色
c2 <--- 境界色
str=$$VsPaint1^ZVSLPV1(x1,y1,dotx1,doty1,c1,c2)
[4-8]塗り潰し
(x1+dotx1,y1+doty1) <--- 開始点行桁ドット(小数点可)
c1 <--- タイルパタン
c2 <--- 境界色(1)
c3 <--- 0
str=$$VsPaint2^ZVSLPV1(x1,y1,dotx1,doty1,c1,c2,c3)
[4-9]点を描画
(x1+dotx1,y1+doty1) <--- 点
(x,y) <--- 点のテキスト座標
(dotx,doty) <--- 差分のドット量
c1 <--- 描画する色のパレット番号
str=$$VsPSet^ZVSLPV1(x1,y1,dotx1,doty1,c1)
[4-10]描画領域全体を白黒反転
str=$$VsInvAll^ZVSLPV1()
[4-11]描画領域の一部を白黒反転
(x1+dotx1,y1+doty1) <--- 左上点行桁ドット
(x2+dotx2,y2+doty2) <--- 右下点行桁ドット
str=$$VsInvRect^ZVSLPV1(x1,y1,x2,y2,dotx1,doty1,dotx2,doty2)
◆<<<モード設定関数等>>>
[5-1]マージン設定関数
dmy=$$VsMgnRect^ZVSLPV1(x1,y1,x2,y2)->スプールに出力
マージン設定(プリンタオープン前)
x1=左,y1=上,x2=右,y2=下ドットマージン(印字可能外枠からのドット数)
str=$$VsMgnLR^ZVSLPV1(x1,x2)
line=$$VsPonBf(splno,setstr) プリンタオープン前に出力
左右マージン設定(プリンタオープン前or後)
str=$$VsMgnTB^ZVSLPV1(y1,y2)
line=$$VsPonBf(splno,setstr) プリンタオープン前に出力
上下マージン設定(プリンタオープン前or後どちらでも可)
*** 直接位置指定ではマージン外でも印字してしまいます
[5-2]自動改行
str=$$VsAutoWrap^ZVSLPV1(yesno)
yesno=(0:自動改行する(横書き),1:しない(縦書き))
[5-3]プリンタオープン時の方法
str=$$VsDialog^ZVSLPV1(yesno)
yesno=(0:デフォルトプリンタ,1:ダイアログボックス)
[5-4]印刷ダイアログボックスの内容を変更して初期化
str=$$VsInitDlg^ZVSLPV1(devmode,devname)
devmode=デバイスの名前$用紙方向$用紙サイズ$...$
ex. "LASER SHOT LBP-1610$1$3$..."
devname=ドライバ名$デバイスの名前$ポート名$
ex. "winspool$Canon LASER SHOT LBP-1610$Ne00:"
*** 両面印刷/印刷密度の設定(印刷ダイアログボックス使用時)
<*>フォントの高さ指定は正の値は内部リーデングを含まない
負の値は内部リーデングを含むドット高さを指定します。
[5-5]フォントオープン
font <-- フォント番号(1から64までの値)
STR=$$VsFOpen^ZVSLPV1(font) --> フォントオープン
STR --> 設定シーケンス
[5-6]フォント削除
font <-- フォント番号(1から64までの値)
STR=$$VsFClose^ZVSLPV1(font) ---> フォント削除
STR --> 設定シーケンス
[5-7]現在フォント選択(デフォルト状態で)
font <-- フォント番号(1から64までの値)
STR=$$VsFSelect^ZVSLPV1(font) --> 現在フォント選択(デフォルト状態で)
STR --> 設定シーケンス
[5-8]現在印刷位置セイブ
STR=$$VsSaveXY^ZVSLPV1() --> 現在印刷位置セイブ
STR --> 設定シーケンス
[5-9]現在印刷位置復元
STR=$$VsRestXY^ZVSLPV1() --> 現在印刷位置復元
STR --> 設定シーケンス
[5-10]透過モードON
STR=$$VsTransP^ZVSLPV1() ;;;透過モードON;;;
STR --> 設定シーケンス
[5-11]透過モードOFF
STR=$$VsOpaque^ZVSLPV1() ;;;透過モードOFF;;;
STR --> 設定シーケンス
■汎用印刷エンジンスプール出力関数
[6-1]プリンタオープン前シーケンス出力関数
$$VsPonBf^ZVSLPV1(splno,setstr) --> プリンタオープン前に出力
標準的な初期化処理等で使用する
[6-2]プリンタオープン後シーケンス出力関数
$$VsPonAf^ZVSLPV1(splno,setstr) --> プリンタオープン後に出力
フォントオープン処理等で使用する
[6-3]プリンタクローズ前シーケンス出力関数
$$VsPoffBf^ZVSLPV1(splno,setstr) --> プリンタクローズ前に出力
フォントクローズ処理等で使用する
[6-4]プリンタクローズ後シーケンス出力関数
$$VsPoffAf^ZVSLPV1(splno,setstr) --> プリンタクローズ後に出力
標準的な終了処理等で使用する
◆<<<文字列属性と印刷データスプール関数>>>[再掲]
横倍角/(*)リバース/ハイライト/アンダーライン/イタリック/通常属性
<esc>#6 / <esc>[7m / <esc>[1m / <esc>[4m / <esc>[2m / <esc>[m
(*)リバース/通常属性は副フォントでも表示可能です
[7-1]スプールデータを出力(ワークグローバルに出力)
splno <---- スプール番号
page <--- 頁番号(1,2,3,...)
y <--- 行位置(1,2,3,...)
x <--- 桁位置(1,2,3,...)
string <-- 出力文字列(シーケンスを含まない)
ret=$$WRITE^ZVSSPL(splno,page,y,x,string)
[7-2]前シーケンスを出力(ワークグローバルに出力)
splno <---- スプール番号
page <--- 頁番号(1,2,3,...)
y <--- 行位置(1,2,3,...)
x <--- 桁位置(1,2,3,...)
string <-- 文字列出力の前に付加するシーケンス
ret=$$PUTSEQ1^ZVSSPL(splno,page,y,x,string)
[7-3]後シーケンスを出力(ワークグローバルに出力)
splno <---- スプール番号
page <--- 頁番号(1,2,3,...)
y <--- 行位置(1,2,3,...)
x <--- 桁位置(1,2,3,...)
string <-- 文字列出力の後に付加するシーケンス
ret=$$PUTSEQ2^ZVSSPL(splno,page,y,x,string)
[7-4]スプールデータとシーケンスを出力(ワークグローバルに出力)
splno <---- スプール番号
page <--- 頁番号(1,2,3,...)
y <--- 行位置(1,2,3,...)
x <--- 桁位置(1,2,3,...)
str1 <-- 文字列出力の前に付加するシーケンス
str2 <-- 出力文字列(シーケンスを含まない)
str3 <-- 文字列出力の後に付加するシーケンス
ret=$$WRITE3^ZVSSPL(splno,page,y,x,str1,str2,str3)
─────────────────────────────────────
2-1
|目次|前ページ|次ページ|