Untitled Document
>> 기술지원 >> B-472
프린터 명령 메뉴얼
프로그램 만들기 순서
DIP SWITCH SETTING
시리얼 케이블 사양
프린터 상태 응답
프린터 명령 메뉴얼
 
명령시작 및 종료 문자들 단 위
B572/B872 한글롬 B452의 한글 롬 이용
B-SA4T/B-SX4T/B-SX5T/B-482/B-852 한글 롬 이용 B-SV4D/SV4T 한글 롬 이용
라벨 크기 지정 버퍼 삭제 명령
비크맵폰트 인쇄 비트맵 폰트 인쇄에 대한 실제 데이터 대입
OutLine 폰트 인쇄
OutLine 폰트 인쇄에 대한 실제 데이터 대입
바코드 인쇄 1(WPC, CODE93, CODE128, EAN128,
    EAN13, EAN8, UPC-A, UPC-E)
바코드의 실제 데이터 대입
바코드 인쇄 2(MSI, Interleaved 2 of 5, CODE39,NW7) 라벨 인쇄 명령
헤드 온도 조절 선 또는 박스 그리기 지정
이미지 처리(B472/B572/B872에서 한글인쇄포함) 커팅 위치 및 전체 세로위치 변경
라벨 프린팅 예제  
 
  • 단위
    0.1 mm단위
  • B572/B872 한글롬 이용
    572에서 한글롬 사용시 한글은 바로 데이터로 대입시키며 영문은 아래와 같이
    변환을 시켜야 하며 명령에서 글자 Font는 “V”로 선언한다.
    (앞 Byte에 ASCII 163번을 주고 영문 ASCII값에 128을 더한 ASCII값의 문자를 뒷바이트로 준다.)
    QBasic에서 ST$ = CHR$(163) + CHR$(asc(“A”)+128),
    VB에서는 ST$ = CHRB(ASC(“A”)-32) + CHRB(255)

  • B452의 한글 롬 이용
    B452에서 Flash Memory에 한글을 다운로드 하고 ‘51’폰트를 사용하여 한글을 인쇄하려면 아래와 같이 실제 데이터가 변화되어서 보내져야 한다.
    (한글은 바로 보내주고 영문은 ASCII 163 Code값과 영문 ASCII Code값에 128을 더한 Code값을 보내줌.)
    ST = “{RC001;” + GetHangul(“바코드 테스트 B-452”) + “|}”
    Public Function GetHangul(ByVal hcode As String) As String
      Dim i, a As Long
      Dim st, rt, fb, lb As String
      rt = ""
      For i = 1 To Len(hcode)
        st = Mid(hcode, i, 1)
        st = StrConv(st, 128)
        a = AscB(MidB(st, 1, 1))
        If a > 128 Then
         '한글이면 바로 보냄
          lb = AscB(MidB(st, 2, 1))
          fb = ChrB(a) + ChrB(lb)
        Else
         ' 영문이면 앞에 ASCII 163번을 주고 영문 ASCII Code값에 128을 더한 Code를 줌.
          fb = ChrB(163) + ChrB(a + 128)
        End If
        fb = StrConv(fb, vbUnicode)
        rt = rt + fb
      Next i
      GetHangul = rt
    End Function
  • B-SA4T/B-SX4T/B-SX5T/B-482/B-852 한글 롬 이용
    B-SX4T 에서 Flash Memory에 한글을 다운로드 하고 ‘51’폰트를 사용하여 한글을 인쇄하려면 아래와 같이 실제 데이터가 변화되어서 보내져야 한다.
    (한글은 바로 보내주고 영문은 ASCII 201 Code값과 영문 ASCII Code값에 129을 더한 Code값을 보내줌.)
    ST = “{RC001;” + GetHangul(“바코드 테스트 B-SX4T”) + “|}”
    Public Function GetHangul(ByVal hcode As String) As String
      Dim i, a As Long
      Dim st, rt, fb, lb As String
      rt = ""
      For i = 1 To Len(hcode)
        st = Mid(hcode, i, 1)
        st = StrConv(st, 128)
        a = AscB(MidB(st, 1, 1))
        If a > 128 Then
         '한글이면 바로 보냄
          lb = AscB(MidB(st, 2, 1))
          fb = ChrB(a) + ChrB(lb)
        Else
         ' 영문이면 앞에 ASCII 201번을 주고 영문 ASCII Code값에 129을 더한 Code를 줌.
          fb = ChrB(201) + ChrB(a + 129)
        End If
        fb = StrConv(fb, vbUnicode)
        rt = rt + fb
      Next i
      GetHangul = rt
    End Function
  • B-SV4D/SV4T 한글 롬 이용
    B-SV4D/4T 에서 Flash Memory에 한글을 다운로드 하고 ‘511’폰트를 사용하여 한글을 인쇄하려면 아래와 같이 실제 데이터가 변화되어서 보내져야 한다.
    (한글은 바로 보내주고 영문은 ASCII 163 Code값과 영문 ASCII Code값에 128을 더한 Code값을 보내줌.)
    ST = “{RC001;” + GetHangul(“바코드 테스트 B-SV4D”) + “|}”
    Public Function GetHangul(ByVal hcode As String) As String
      Dim i, a As Long
      Dim st, rt, fb, lb As String
      rt = ""
      For i = 1 To Len(hcode)
        st = Mid(hcode, i, 1)
        st = StrConv(st, 128)
        a = AscB(MidB(st, 1, 1))
        If a > 128 Then
         '한글이면 바로 보냄
          lb = AscB(MidB(st, 2, 1))
          fb = ChrB(a) + ChrB(lb)
        Else
         ' 영문이면 앞에 ASCII 163번을 주고 영문 ASCII Code값에 128을 더한 Code를 줌.
          fb = ChrB(163) + ChrB(a + 128)
        End If
        fb = StrConv(fb, vbUnicode)
        rt = rt + fb
      Next i
      GetHangul = rt
    End Function
  • 라벨 크기 지정
    Daaaa,bbbb,cccc
    aaaa:  라벨의 세로크기+갭크기 지정
    bbbb: 라벨의 가로크기 지정
    cccc: 라벨의 크기 지정

       예) 라벨이 가로 30mm, 세로 20mm, 갭 3mm일 때
            {D0230,0300,0200|}

  • 비크맵폰트 인쇄( 가로친 부분은 생략해도 됨)
    PCaaa;bbbb,cccc,d,e,ff(,ghh),ii,j(,Jkkll)(,Mm)(,noooooooooo)(,Zpp)
    aaa:문자열 번호 (000 - 99사이)
    bbbb: 문자열을 인쇄할 X좌표 (0.1mm단위)
    cccc:  문자열을 인쇄할 Y좌표 (0.1mm단위)
    d: 문자의 가로확대 비율( 0 - 9 사이)
    e: 문자의 세로확대 비율(0 - 9사이)
    ff: 폰트 종류 (A - T사이, 단 B-452와 B-482/B-SX시리즈/B-SA4T 의 한글은 ‘51’ 그리고 B-SV4D/4T에서는 '511' 로하며, B-572/872에서  한글 롬사용시 ‘V’를 사용함.)
            A: Times Roman (Medium)          8 point
            B: Times Roman (Medium)        10 point
            C: Times Roman (Bold)              10 point
            D: Times Roman (Bold)              12 point
            E: Times Roman (Bold)              14 point
            F: Times Roman (Italic)              12 point
            G: Helvetica (Medium)                6 point
            H: Helvetica (Medium)                10 point
            I : Helvetica (Medium)                 12 point
            J: Helvetica (Bold)                      12 point
            K: Helvetica (Bold)                      14 point
            L: Helvetica (Italic)                      12 point
            M: Presentation (Bold)               18 point
            N: Letter Gothic (Medium)           9.5 point
            O: Prestige Elite (Medium)            7 point
            P: Prestige Elite (Bold)                10 point
            Q: Courier (Medium)                   10 point
            R: Courier (Bold)                         12 point
            S: OCR-A                                    12 point
            T: OCR-B                                    12 point
    ghh: 문자간 스페이스 간격
            g: 문자간의 스페이스 간격의 크기를 지정
                    +: 크게
                    -: 작게
            hh: 문자간의 스페이스 토트수 (00 - 99 사이)
    ii: 문자열의 회전
            00: 문자열 회전 0도
            11: 문자열 회전 90도
            22: 문자열 회전 180도
            33: 문자열 회전 270도
            j : 문자배경 지정
                    B: 검은 문자
                    W: 흰 문자
            Jkkll: 강조 문자 지정
                    kk : 강조 문자의 수평방향 크기 지정(00 - 16사이)
                    ll : 강조 문자의 수직방향 크기 지정(00 - 16 사이)
            Mm:체크디지트 부가지정
                   m:체크디지트 종류
                        0: Module 10
                        1: Module 43
           noooooooooo: 시리얼 증가/감소 지정
                       n: 증가 /감소 지정
                            + : 증가
                            - : 감소
                       oooooooooo : 증가/감소의 시작위치 및 증가/감소 량
          Zpp: Zero Suppression 지정
                    pp: Zero Suppression 수량 (00 - 20사이)

     예) 라벨의 왼쪽 맨위에서 가로 1mm,세로 1mm 위치에서 ‘A0001’를  인쇄하는데
          1씩 증가되게 할 때
          {PC001;0010,0010,1,1,A,00,B,+0000000001|}
         {RC001;A0001|}

  • OutLine 폰트 인쇄
    PVaa;bbbb,cccc,dddd,eeee,f(,ghhh),ii,j(,Mk)(,noooooooooo)(,Znn)
            aa:  문자열 번호 (00 - 99사이)
            bbbb: 문자열을 인쇄할 X좌표 (0.1mm단위)
            cccc:  문자열을 인쇄할 Y좌표 (0.1mm단위)
            dddd:문자의 가로크기 (0.1mm단위, 0020 - 0850사이)
            eeee:문자의 세로크기 (0.1mm단위, 0020 - 0850사이)
            f: 폰트 종류
                    A:  TEC FONT1 (Helvetica [bold])
                    B:  TEC FONT1(Helvetica [bold] proportional)
            ghhh: 문자간 스페이스 간격지정
                    g:  문자간 의 스페이스 크기를 증가/감소 지정
                            + : 증가
                            - : 감소
                    hhh: 문자간 스페이스 크기 (000 - 512사이)
            ii: 문자열의 회전 지정
                    00: 문자열 회전 0도
                    11: 문자열 회전 90도
                    22: 문자열 회전 180도
                    33: 문자열 회전 270도
            j : 문자 배경 지정
                    B: 검은 문자
                    W: 흰 문자
            Mk: 체크디지트 부가 지정
                    k: 체크디지트 종류
                            0: Module 10
                            1: Module 43
            noooooooooo: 시리얼 증가/감소 지정
                    n: 증가/감소 지정
                         +: 증가
                         -: 감소
                    oooooooooo: 증가 또는 감소량
            Znn: Zero Suppression지정
                    nn: Zero Supression수량 (00 - 20사이)

     예) 라벨의 왼쪽 맨위에서 가로 1mm,세로 1mm 위치에서 가로 3mm,세로 2.5mm로
          ‘A0001’를  인쇄하는데 1씩 증가되게 할 때
           {PV01;0010,0010,0030,0025,A,00,B,+0000000001|}
           {RV01;A0001|}

  • 바코드 인쇄 1( WPC, CODE93, CODE128, EAN128, EAN13, EAN8, UPC-A, UPC-E)
    XBaa;bbbb,cccc,d,e,ff,k,llll(,mnnnnnnnnnn,ooo,p,qq)
            aa: 바코드 번호 (00 에서 31 까지 사용가능)
            bbbb: 바코드의 인쇄 X위치 (0.1mm단위)
            cccc: 바코드의 인쇄 Y위치 (0.1mm단위)
            d: 바코드 종류
                    0: JAN8, EAN8
                    5: JAN13, EAN13 ( 이것을 사용시 체크디지트 종류 ‘3’을 해주어야함.)
                    6: UPC-E
                    7: EAN13+2digits
                    8: EAN13+5digits
                    9: CODE128 (코드 변환 없음)
                    A: CODE128(코드 변환 있음)  주의:CODE-C사용시 데이터에 ‘>5’를 넣어주고
                                                                    FUNC1의 사용시 ‘>8’을 넣어야함.
                    C: CODE93
                    G: UPC-E+2 digits
                    H: UPC-E+5 digits
                    I: EAN8+2 digits
                    J: EAN8+5 digits
                    K: UPC-A
                    L: UPC-A+2 digits
                    M: UPC-A+5 digits
                    N: EAN128
            e: 체크디지트 종류
                    1: 체크디지트 없음
                    2: 체크디지트 체크
                            WPC        Modulus 10
                            CODE93     Modulus 47
                            CODE128    PSEUDO 103
                    3: 체크디지트 자동부가 (1)
                            WPC        Modulus 10
                            CODE93     Modulus 47
                            CODE128    PSEUDO 103
                            UCC/EAN128    Modulus 10 + Modulus 103
                     4: 체크디지트 자동부가 (2)
                            WPC     Modulus 10 + Price C/D 4 digits
                     5: 체크디지트 자동부가 (30)
                            WPC      Modulus 10 + Price C/D 5 digits
            ff: 1모듈단위 지정
                    01 - 15사이 (1dot단위)
            k: 바코드의 회전
                    0: 0도 회전
                    1: 90도 회전
                    2: 180도 회전
                    3: 270도 회전
            llll: 바코드의 세로길이
                    0000 - 1000사이 ( 0.1mm단위)
            mnnnnnnnnnn: 바코드 데이터의 자동 증가/감소 지정
                     m: 증가/감소 지정
                            + : 증가
                            - : 감소
                     nnnnnnnnnn: 증가/감소 수량 (0000000000 - 9999999999 사이)
            ooo: WPC 가이드바의 길이 (보통 015정도로 잡아줌.)
                    000 - 100사이 (0.1mm단위)
            p: 바코드아래의 숫자인쇄의 지정
                    0: 바아래 숫자 안찍음
                    1: 바아래 숫자 찍음
            qq: Zero Suppression 수량
                    00 - 20 사이

    예) 라벨의 왼쪽맨위에서 오른쪽으로 1mm, 아래로 1mm 위치에서 1cm길이만큼
         CODE93으로 체크디지트 없이 ‘A0001’을 1씩 시리얼 증가로 하여 찍으면…
             {XB01;0010,0010,C,1,03,0,0100,+0000000001,000,1,00|}
             {RB01;A0001|}

  • 바코드 인쇄 2(MSI, Interleaved 2 of 5, CODE39,NW7)
    XBaa;bbbb,cccc,d,e,ff,gg,hh,ii,jj,k,llll(,mnnnnnnnnnn,p,qq,r)
            aa: 바코드 번호 (00 - 31)
            bbbb: 바코드의 인쇄 X위치 (0.1mm단위)
             cccc: 바코드의 인쇄 Y위치 (0.1mm단위)
            d: 바코드 종류
                    1: MSI
                    2: Interleaved 2 of 5
                    3: CODE 39 ( Standard)
                    4: NW7
                    B: CODE 39 (full ASCII)
            e: 체크디지트 종류
                    1: 체크디지트 없음
                    2: 체크디지트 체크
                            CODE39     Modulus 43
                            MSI        IBM Modulus 10
                            ITF        Modulus 10
                    3: 체크디지트 자동부가 (1)
                            CODE39     Modulus 43
                            MSI        IBM Modulus 10
                            ITF        Modulus 10
                     4: 체크디지트 자동부가 (2)
                            MSI  IBM Modulus 10 + IBM Modulus 10
                    5: 체크디지트 자동부가 (30)
                            MSI  IBM Modulus 11 + IBM Modulus 10
            ff: 얇은바의 크기지정
                    01 - 99사이 (1dot단위)
            gg: 얇은스페이스의 크기지정
                    01 - 99사이 (1dot단위)
            hh: 굵은바의 크기지정
                    01 - 99사이 (1dot단위)
            ii: 굵은스페이스의 크기지정
                    01 - 99사이 (1dot단위)
            jj: 문자간 스페이스 크기지정
                    01 - 99사이 (1dot단위)

                k: 바코드의 회전
                    0: 0도 회전
                    1: 90도 회전
                    2: 180도 회전
                    3: 270도 회전
               llll: 바코드의 세로길이
                    0000 - 1000사이 ( 0.1mm단위)
               mnnnnnnnnnn: 바코드 데이터의 자동 증가/감소 지정
                    m: 증가/감소 지정
                        + : 증가
                        - : 감소
                    nnnnnnnnnn: 증가/감소 수량 (0000000000 - 9999999999 사이)
              p: 바코드아래의 숫자인쇄의 지정
                    0: 바아래 숫자 안찍음
                    1: 바아래 숫자 찍음
              qq: Zero Suppression 수량
                    00 - 20 사이
              r :  스타트 /스톱코드의 부가지정
                    T: Start Code부가
                    P: Stop Code 부가
                    N: Start/Stop Code 부가 없음

    예) 라벨의 왼쪽맨위에서 오른쪽으로 1mm, 아래로 1mm 위치에서 1cm길이만큼
         CODE39으로 체크디지트 없이 ‘A0001’을 1씩 시리얼 증가로 하여 찍으면…
            {XB01;0010,0010,3,1,02,02,04,04,02,0,0100,+0000000001,1,00|}
            {RB01;A0001|}

  • 라벨 인쇄 명령
    XS;I,aaaa,bbbcdefgh
            aaaa:  인쇄 수량 지정 (0001 - 9999사이)
            bbb:  커팅간격 (몇장인쇄후 커팅할것인지를 지정)
                    000 - 100사이
            e: 라벨센서종류
                    0: 센서 사용안함
                    1: 반사센서 (Black Mark라벨 사용시)
                    2: 투과센서
                    3: 투과센서 (구멍라벨 사용시)
            f: 발행모드
                    C: Batch Mode  (커팅발행,  인쇄후 커팅, 백피드 사용시)
                    D: Strip Mode ( 백피드 사용안할 때)
            E: 발행속도          
                    2: 초당 2인치 인쇄 (B-452/852 사용시)
             3: 초당 3인치 인쇄 (B-SX4T/5T/SA4T 사용시)
             4: 초당 4인치 인쇄 (452, B-852 사용시)
                    5: 초당 5인치 인쇄 (B-572 사용시)
             6: 초당 6인치 인쇄 (B-SX4T/5T/SV4D/SV4T/SA4T 사용시) 
                    8 초당 8인치 인쇄 (B-SX4T/5T 사용시)
            f: 리본 사용/미사용
                    0: 리본사용 안함
                    1: 리본사용( Ribbon Save 있음)
                    2: 리본사용(Ribbon Save 없음)
            g: 인쇄 방향 지정
                    0: 밑의 것이 먼저 인쇄
                    1: 위의 것이 먼저 인쇄
            h: 프린터 상태 종류
                    0: 프린터 상태값을 안줌
                    1: 프린터 상태값을 줌

     예) 일반 스티커라벨을 속도 초당 5인치로 리본을 사용하여 3장을 인쇄하면…
              {XS;I,0003,0002C5101|}

  • 헤드 온도 조절
    AY;abb,c
    a: 헤드 온도의 증가/감소지정
                    + : 증가
                     -: 감소
            bb: 헤드 온도 ( 00 - 10사이)
            c:  Thermal transfer 또는 direct thermal의 모드 지정
                    0: Thermal Transfer
                    1: Direct Thermal
  • 선 또는 박스 그리기 지정
    LC;aaaa,bbbb,cccc,dddd,e,f
            aaaa: 시작 X위치 (0.1mm 단위)
            bbb: 시작 Y위치 (0.1mm단위)
            cccc: 종료 X위치 (0.1mm단위)
            dddd: 종료 Y위치 (0.1mm단위)
            e: 라인 종류
                    0: 라인
                    1: 박스
            f: 라인 굵기 (1 ? 9 사이)
  • 이미지 처리(B472/B572/B872에서 한글인쇄포함)
     SG;aaaa,bbbb,cccc,dddd,e,fff --- fff
    aaaa: 이미지 인쇄 X위치
    bbbb: 이미지 인쇄 Y위치
    cccc: 이미지의 가로 돗트수
    dddd: 이미지의 세로 돗트수
    e : 이미지 데이타의 타입
          0 : Nibble Mode( 4 dots/byte )
          1 : Hex Mode( 8 dots/byte )
    fff --- fff: 이미지 데이타
    * Nibble Mode일때: 이미지데이타를 각 4dots씩 잘른 값에 Hex값 30을 더하여 1Byte씩 만들어 보내줌.
       Hex Mode일때: 이미지데이타를 각 8dots씩 자른 값을 그대로 보내줌.

  • 커팅 위치 및 전체 세로위치 변경
     AX;abbb,cddd,eff
     a : 전체 인쇄의 세로위치를 Forward 또는 Backward함.
          + : Backward
          - : Forward
    bbb : 적정으로 조절된 Feed값. ( 0 - 100 사이 )
    c : 커팅위치를 Forward 또는 Backward함.
         + : Backward
         - : Forward
    ddd: 커팅위치를 적정으로 조절한 수값. ( 0 - 100 사이 )
    e : 백피드 양이 증가 또는 감소 되는지를 표현
        + : 증가
        - : 감소
    ff : 백피드 되는 적정수

    예) 전체 세로위치를 Backword 로 30정도, 커팅위치를 Forward로 40정도로 하여 인쇄할때...
         {AX;+030,-040,+00|}
  • 라벨 프린팅 예제
    라벨 사이즈가 50mm X 30mm에서 왼쪽 맨 위에서 오른쪽 1mm 아래로 1mm
    위치에 ‘A0001’ 란 글자를 1씩 증가시키며, 라벨 맨위에서 5mm위치에 CODE39이며 세로로 10mm 크기로 ‘B0001’ 데이터가 1씩 증가되는 라벨을 3장 인쇄하면 아래와 같습니다.
    단, 라벨은 일반 갭라벨이며 리본을 사용하며 예제는 QBasic입니다.
    주의: 명령 문자열 (" 와 " 내의 것들)을 RS-232C 또는 LPT1으로 보내주면 됩니다.)

    Open “COM1:9600,N,8,1,CS,DS,CD” AS #1
    PRINT #1,”{D0330,0500,0300|}”
    PRINT #1,”{C|}”
    PRINT #1,”{PC001;0010,0010,1,1,A,00,B,+0000000001|}”
    PRINT #1,”{XB01;0010,0050,3,1,02,02,04,04,02,0,0100,+0000000001,1,00|}”
    PRINT #1,”{RC001;A0001|}”
    PRINT #1,”{RB01;B0001|}”
    PRINT #1,”{XS;I,0003,0002C5101|}”
    CLOSE #1