jvGetAllJobInfo(全印刷ジョブの全情報取得)

指定したプリンタのすべてのジョブの全情報を取得します。

[構文]
 
Function jvGetAllJobInfo(ByVal printerName As String , ByVal bufLen As Long, ByVal info As String ) As Long
 
C言語
int jvGetAllJobInfo(char *printerName, int bufLen, char *info);
 
JAVA
int jvGetAllJobInfo(String printerName, int bufLen, StringBuffer info);
 
Delphi
Function jvGetAllJobInfo(printerName: PAnsiChar; bufLen: Longint; info: PAnsiChar): Longint;
 

設定項目

内容

printerName

プリンタ名称

bufLen

情報取得バッファの長さ(バイト単位)

info

情報取得バッファ

 
リターンコード
 

定数

内容

 

1以上

情報取得に必要なバッファのサイズ

 

0

正常終了

JV_ERR_PRINTERNAME

-10

プリンタ名称エラー

JV_ERR_OPEN_PRINTER

-91

OpenPrinterエラー

JJV_ERR_GET_JOB

-92

GetJobエラー

JV_ERR_PARAMETER

-2

パラメータエラー

JV_ERR_MEMORY

-4

メモリ関連エラー

 
[解説]
 
情報が正常に取得できた時は、リターンコードに0が返ります。バッファの不足により情報が取得できない時は、リターンコードに、必要なサイズが返ります。リターンコードが1以上の場合は、リターンコード分のバッファを確保し、もう一度コールしてください。
全情報の内容と並び順は次の通りです。項目間はカンマで区切られます。複数のジョブがある場合、ジョブとジョブの間には改行コード(CR+LF)が入ります。
 
1.印刷ジョブID
2.プリンタ名
3.マシン名
4.ユーザー名
5.印刷ジョブ名(DocNameプロパティで指定した名称)
6.印刷ジョブを記録するために使われるデータの種類
7.印刷ジョブの状態(文字列)
8.印刷ジョブの状態(フラグ)
9.ジョブの優先順位
10.印刷キュー内のジョブの位置
11.文書のページ数
12.すでに印刷されたページ数
13.この文書がスプールされた時間(hh:mm:ss YY/MM/DD)
 
「8.印刷ジョブの状態」は、次の値のうち、該当する値の合計値となります。
 

定数

内容

JV_JOBSTATUS_PAUSED

1

一時停止

JV_JOBSTATUS_ERROR

2

エラー
JV_JOBSTATUS_DELETING

4

削除中
JV_JOBSTATUS_SPOOLING

8

スプール中
JV_JOBSTATUS_PRINTING

16

印刷中
JV_JOBSTATUS_OFFLINE

32

オフライン
JV_JOBSTATUS_PAPEROUT

64

紙切れ
JV_JOBSTATUS_PRINTED

128

印刷済み
 
印刷中のプリンタ名称は、jvGetStringで取得することができます。使用できるプリンタの一覧はjvGetPrinterNameで取得することができます。  
bufLen に0を指定すると、必要なバッファサイズを取得します。 Javaでは、この値は無視されます。  
 
[コーディング例]
 
Dim jid&, ret&, bufLen&, PrinterName$
jid = jvCreate(JV_PRINTER, form1.hWnd, 0, 0, 0, 0, "")
ret = jvSetForm(jid, "c:\JiveReport\納品書.jfm", 1,"", 100, 0, 0)
ret = jvStartDoc(jid, "納品書", "")
'プリンタ名の取得
PrinterName = Space(33)
ret = jvGetString(jid, JV_PRINTER_NAME,PrinterName)
|
ret = jvEndPage(jid)
ret = jvEndDoc(jid)
ret = jvClose(jid)
'情報の取得に必要なバッファサイズを取得する
bufLen = jvGetAllJobInfo(PrinterName, 0, jobInfo)
If bufLen > 0 Then
'取得用バッファを確保し、再度実行する
jobInfo = Space(bufLen)
'全ジョブのすべての情報を取得する
ret=jvGetAllJobInfo(PrinterName,bufLen,jobInfo)
If ret <> 0 Then
MsgBox "jvGetAllJobInfo Error " + CStr(ret)
Else
JobStatus.Caption = jobInfo
End If
Else
MsgBox "jvGetAllJobInfo Error " + CStr(ret)
End If