jvDrawBarcode(バーコード描画)

バーコードを描画します。

[構文]
 
Function jvDrawBarcode(ByVal jid As Long, ByVal sx As Long, ByVal sy As Long, ByVal barHeight As Long, ByVal barSize As String, ByVal charGap As Long, ByVal codeType As Long, ByVal checkDigit As Long, ByVal angle As Long, ByVal barcode As String, ByVal retCode As String) As Long
 
C言語
int jvDrawBarcode(int jid, int sx, int sy, int barHeight, int barSize, int charGap, int codeType, int checkDigit, int angle, char *barcode, char *retCode);
 
JAVA
int jvDrawBarcode(int jid, int sx, int sy, int barHeight, int barSize, int charGap, int codeType, int checkDigit, int angle, String barcode, StringBuffer retCode);
 
Delphi
Function jvDrawBarcode(jid, sx, sy, barHeight: Longint; barSize: PAnsiChar; charGap, codeType, checkDigit, angle: Longint; barcode, retCode: PAnsiChar): Longint;
 
   

設定項目

内容

jid

jvCreateで取得したジョブID

sx

バーコードの左上X座標(1/100mm単位)

sy

バーコードの左上Y座標(1/100mm単位)

barHeight

バーの高さ(1/100mm単位)

barSize

設定する値はバーコードの種類によって異なります。(下記参照)

charGap

キャラクタ間ギャップ(1/100mm単位)

codeType

バーコードの種類(設定値参照)

checkDigit

チェックディジットの有無(設定値参照)

angle

描画方向(設定値参照)

barcode

バーコードのコード

retCode

実際に描画したコードを返すバッファ

 
リターンコード
 

定数

内容

 

0

正常終了

JV_ERR_JOBID

-3

ジョブIDエラー

JV_ERR_PARAMETER

-2

パラメータエラー

JV_ERR_BAR_CODE

-65

不正なコードがある

JV_ERR_BAR_LENGTH

-66

コード長が不正

 
[設定値]
 
barsize には、次の値を指定します。データ間はカンマで区切ります。
 
カスタマーバーコードの場合
「ロングバーの長さ、タイミングバーの長さ、バーの幅、スペースの幅」をこの順番で設定します。未設定の場合は、デフォルト値で描画されます。  
 
QRコード、マイクロQRコード、PDF417コード、マイクロPDF417コードの場合
ここをクリックしてbarsize設定値を参照し値を指定してください。未設定の場合は、エラーになります。
 
上記以外のバーコード
「バー幅1,バー幅2,バー幅3,バー幅4,スペース幅1,スペース幅2,スペース幅3,スペース幅4」を細い方から順番に設定します。未設定の場合は、デフォルト値で描画されます。  
  
  
codetype には次の値を設定します。
 

定数

内容

JV_BAR_JAN13

1

JAN標準形  

JV_BAR_JAN8

2

JAN短縮形

JV_BAR_CODE39

3

CODE39

JV_BAR_NW7

4

NW7

JV_BAR_ITF

5

ITF

JV_BAR_CODE128

7

CODE128

JV_BAR_CST

8

カスタマバーコード

JV_BAR_UPC

9

UPC

JV_BAR_QRCODE

11

QRコード

JV_BAR_MICROQR

12

マイクロQRコード

JV_BAR_PDF417

13

PDF417コード

JV_BAR_MICROPDF417

14

マイクロPDF417コード

 
checkdigit には次の値を設定します。
 

定数

内容

JV_CHECK_OFF  

0

チェックディジットをつけない  

JV_CHECK_ON

1

チェックディジットをつける

 
angle には次の値を設定します。
 

定数

内容

JV_ANGL_0

0

左→右

JV_ANGL_90

1

上→下

JV_ANGL_180

2

右→左

JV_ANGL_270

3

下→上

 
[解説]
 
barHeight はカスタマバーコードでは無視されます。
charGap はcode39とNW7の場合のみ有効です。
checkDigit はCODE39、CODE128、NW7の場合のみ有効です。
barcode はバーコードの種類によって使用できるキャラクタに制限があります。  
 
retCode はコール前に必要な領域を確保しておきます。描画コードの後ろにNULL文字がセットされるため、バッファは1バイト余分に確保してください。バーコードの種類がQRコード、マイクロQRコード、PDF417コード、マイクロQRコードの場合にはretCode に何も返りません。
 
各バーコードの詳細は、以下を参照してください。
 
JAN標準形・短縮形
CODE39
NW7
ITF
CODE128(EAN128)
UPC
カスタマーバーコード(郵便)
QRコード
マクロQRコード
PDF417コード
マイクロPDF417コード
 
    
[コーディング例]
 
Dim jid&, ret&
Dim retCode$
jid = jvCreate(JV_PRINTER, form1.hWnd, Printer.hDC, 0, 0, 0, "")
ret = jvSetForm(jid, "c:\JiveReport\納品書.jfm", 1, "", 100, 0, 0)
ret = jvStartDoc(jid, "納品書", "")
 
retCode$ = space(14)
ret = jvDrawBarcode(jid, 1000, 1000, 3000, "", 0, JV_BAR_JAN13
, 0, JV_ANGLE0, "491234567890", retCode)
retCode$ = space(20)
ret = jvDrawBarcode(jid, 1000, 3000, 0, "360,120,60,60", 0, JV_BAR_CST
, 0, JV_ANGLE0, "460-0011名古屋市中区大須1−25−28", retCode)
 
barsize = CStr(JV_QR_LEVEL_M) & "," & CStr(JV_QR_TYPE_AUTO) & "," & CStr(JV_QR_MASKNO_AUTO)
ret = jvDrawBarcode(jid, 1000, 3000, 1000, barsize, 0, JV_BAR_QR , 0, 0, "QRコード", retCode)
 
|
ret = jvEndPage(jid)
ret = jvEndDoc(jid)
ret = jvClose(jid)