|目次前ページ次ページ|
─────────────────────────────────────
■印刷管理ジョブ(汎用印刷エンジン)使用手引書■
           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
     |目次前ページ次ページ