jvSetDevMode(プリンタドライバ設定)

印刷実行時にアプリケーション側で自動的にプリンタドライバのプロパティを設定します。

[構文]
 
Function jvSetDevMode(ByVal jid As Long, ByVal temporary As Long, ByVal prnName As String, ByVal devMode As String) As Long
 
C言語
int jvSetDevMode(int jid, int temporary, char *prnName, char *devMode);
 
JAVA
int jvSetDevMode(int jid, int temporary, String prnName, String devMode);
 
Delphi
Function jvSetDevMode(jid, temporary: Longint; prnName, devMode: PAnsiChar): Longint;
   

設定項目

内容

jid

jvCreateで取得したジョブID

temporary

プリンタドライバの設定条件(設定値参照)

prnName

プリンタドライバを設定するプリンタ名

devMode

プリンタドライバ情報またはドライバ設定ファイル名

 
リターンコード
 

 

内容

 

0

正常終了

JV_ERR_JOBID

-3

ジョブIDエラー

JV_ERR_PRINTSET_ALREADY_EXEC

-36

jvSetDevModeまたはjvPrintDialogEx実行済み

JV_ERR_PRINTERNAME

-10

プリンタ名称エラー

JV_ERR_PARAMETER

-2

パラメータエラー

JV_ERR_DRVSET

-11

プリンタドライバ設定エラー

JV_ERR_MEMORY

-4

メモリ関連エラー

JV_ERR_CREATEDC

-13

デバイスコンテキスト作成エラー  

 
[設定値]
 
temporary には次の値を設定します。
 

内容

 0

永久設定

 1

一時設定

 
[解説]
 
jvSetDevModeを使う場合は、jvCreateの出力先デバイスを「JV_PRINTER」または「JV_RDF」にします。jvSetDevModeをコールした時は、jvPrintDialogExをコールできません。
prnName が指定されない場合は、jvCreateのプリンタデバイスコンテキストで指定されたプリンタのプロパティを設定します。
devMode にプリンタドライバ設定ファイルを指定した場合は、ファイルの検索パスをjvSetStringで指定できます。jvCreateの出力先デバイスが「JV_RDF」の場合、プリンタドライバ設定ファイルは、RDFドキュメントデータやRDFファイルの中に保存されます。
 
jvSetDevModeは、1つの印刷ジョブ(jvStartDocからjvEndDocまでの間)の中で何度でもコールできます。複数回コールした場合、前回の設定は無効になります。jvSetDevModeは、jvCreate〜jvStartDocの間、または、jvEndPageの後でコールします。(jvStarDocの後ではコールできません。)   
 
本的なコーディング   
プリンタドライバ設定ファイルとは   
プリンタドライバ情報とは   
プリンタドライバ情報の取得方法   
 
[コーディング例]
 
用紙サイズや用紙方向を1度だけ設定する場合
 
Dim jid&,ret&
jid = jvCreate(JV_PRINTER, form1.hWnd, Printer.hDC, 0,0,0,"")
'プリンタドライバ情報で設定する方法
ret = jvSetDevMode(jid, 1, "PC-PR201", "1,9,,0,75,3")
ret = jvStartDoc(jid, "請求書","")
|
ret = jvEndPage(jid)
ret = jvEndDoc(jid)
ret = jvClose(jid)
 
用紙サイズや用紙方向を途中で変更する場合
 
Dim jid&,ret&
jid = jvCreate(JV_PRINTER, form1.hWnd, Printer.hDC, 0,0,0,"")
'プリンタドライバ情報ファイルで設定する方法
ret = jvSetDevMode(jid, 1, "PC-PR201", "c:\prnDev1.bin")
ret = jvStartDoc(jid, "請求書","")
|
ret = jvDrawForm(jid) ← Dev1.binの用紙設定で印刷
ret = jvEndPage(jid)
ret = jvSetDevMode(jid, 1, "PC-PR201", "c:\prnDev2.bin")
|
ret = jvDrawForm(jid) ← Dev2.binの用紙設定で印刷
ret = jvEndPage(jid)
ret = jvEndDoc(jid)
ret = jvClose(jid)