You are on page 1of 172

Printer SDK for Android

API 레퍼런스 가이드


POS 프린터
SPP-R200II
Rev. 1.07 SPP-R300
SPP-R400
SRP-F310 / SRP-F312
SRP-350II / SRP-350IIK
SRP-350IIOBE
SRP-350plusII / SRP-352plusII
SRP-330
SRP-150
SPP-100II
STP-103II
SRP-275II

http://www.bixolon.com
POS 프린터

■ 목차
1. 매뉴얼 안내 ........................................................................................................................................... 5

2. BIXOLON Printer SDK for Android 개요 ............................................................................................ 6


2-1 특징 .................................................................................................................................................. 6
2-1-1 안드로이드 애플리케이션에서 ㈜빅솔론의 모바일 프린터와 POS 프린터로 인쇄하는
것을 용이하게 합니다................................................................................................................. 6
2-1-2 안드로이드 애플리케이션에서 프린터의 상태 확인을 용이하게 합니다. ...................... 6
2-2 기능 .................................................................................................................................................. 6
2-2-1 인쇄 설정 (정렬 / 페이지 모드) ....................................................................................... 6
2-2-2 문자 데이터 설정 (코드 페이지 / 디바이스 폰트 타입) ................................................. 6
2-2-3 문자 스타일 설정 (bold / 음영 / 밑줄) ............................................................................ 6
2-2-4 이미지 인쇄 (raster bit / NV graphics) .............................................................................. 6
2-2-5 1차원 바코드 인쇄 (모델별 인쇄 가능한 바코드 타입은 프린터 사양 참고) ................ 6
2-2-6 2차원 바코드 인쇄 (모델별 인쇄 가능한 바코드 타입은 프린터 사양 참고) ................ 6
2-2-7 금전등록기 열기 기능 / 멜로디 박스 울림 기능 ............................................................ 6
2-2-8 프린터 커맨드 송신 ........................................................................................................... 6
2-2-9 프린터 응답 수신 (인쇄 결과 / 프린터 상태) ................................................................. 6

3. 동작 환경 ............................................................................................................................................... 7
3-1 Android 버전..................................................................................................................................... 7
3-1-1 블루투스, 무선랜 연결 사용: Android 2.2 (Froyo) 이상................................................... 7
3-1-2 USB 연결 사용: Android 3.1 (Honeycomb) 이상 .............................................................. 7
3-2 프린터 인터페이스 .......................................................................................................................... 7
3-2-1 블루투스 ............................................................................................................................. 7
3-2-2 무선랜 ................................................................................................................................. 7
3-2-3 유선랜 ................................................................................................................................. 7
3-2-4 USB ..................................................................................................................................... 7

4. 개발 환경 ............................................................................................................................................... 8
4-1 시스템 요구 사항 ............................................................................................................................ 8
4-1-1 운영 체제 ........................................................................................................................... 8
4-1-2 Eclipse IDE.......................................................................................................................... 8
4-2 안드로이드 장치 연결 ..................................................................................................................... 9
4-2-1 Bluetooth ............................................................................................................................. 9
4-2-2 Network (LAN / WLAN) ..................................................................................................... 10
4-2-3 USB ....................................................................................................................................11
4-2-4 Android 장치 개발자 옵션 설정 ...................................................................................... 13
4-3 라이브러리 포함 및 샘플 애플리케이션 실행............................................................................. 13
4-3-1 Eclipse에서 안드로이드 프로젝트를 import하는 방법 ................................................... 13
4-3-2 프로젝트 실행/디버그 ...................................................................................................... 13

5. 패키지 콘텐츠 ...................................................................................................................................... 14


5-1 패키지 ............................................................................................................................................ 14
5-2 다운로드 ......................................................................................................................................... 14

6. 샘플 프로그램 ...................................................................................................................................... 15
6-1 기능 ................................................................................................................................................ 15
6-2 환경 구성 ....................................................................................................................................... 15
6-3 사용 방법 ....................................................................................................................................... 16
6-3-1 프린터 검색 및 연결 ....................................................................................................... 16

Rev. 1.07 -2-


POS 프린터
7. API Reference ..................................................................................................................................... 17
7-1 프린터 instance 생성 .................................................................................................................... 17
7-1-1 생성자 ............................................................................................................................... 17
7-2 프린터 검색 ................................................................................................................................... 19
7-2-1 findBluetoothPrinters ......................................................................................................... 19
7-2-2 findNetworkPrinters ........................................................................................................... 21
7-2-3 findUsbPrinters.................................................................................................................. 23
7-2-4 findUsbPrintersBySerial .................................................................................................... 25
7-3 프린터 연결 ................................................................................................................................... 27
7-3-1 connect .............................................................................................................................. 27
7-3-2 connect .............................................................................................................................. 29
7-3-3 connect .............................................................................................................................. 31
7-3-4 connect .............................................................................................................................. 33
7-3-5 connectUsb ....................................................................................................................... 35
7-3-6 disconnect ......................................................................................................................... 37
7-4 인쇄 ................................................................................................................................................ 39
7-4-1 formFeed ........................................................................................................................... 39
7-4-2 lineFeed............................................................................................................................. 41
7-4-3 print1dBarcode .................................................................................................................. 43
7-4-4 printBitmap ........................................................................................................................ 45
7-4-5 printBitmap ........................................................................................................................ 47
7-4-6 printBitmap ........................................................................................................................ 49
7-4-7 printBitmap ........................................................................................................................ 51
7-4-8 printBitmap ........................................................................................................................ 53
7-4-9 printDataMatrix .................................................................................................................. 55
7-4-10 printDotMatrixBitmap ...................................................................................................... 57
7-4-11 printDotMatrixBitmap ...................................................................................................... 59
7-4-12 printDotMatrixText ........................................................................................................... 61
7-4-13 printMaxiCode ................................................................................................................. 63
7-4-14 printPdf ............................................................................................................................ 65
7-4-15 printPdf417 ...................................................................................................................... 67
7-4-16 printQrCode..................................................................................................................... 69
7-4-17 printQrCode..................................................................................................................... 71
7-4-18 printSelfTest .................................................................................................................... 73
7-4-19 printText .......................................................................................................................... 75
7-5 프린터 응답 수신 .......................................................................................................................... 77
7-5-1 automateStatusBack ......................................................................................................... 77
7-5-2 getBatteryStatus................................................................................................................ 79
7-5-3 getPrinterId........................................................................................................................ 81
7-5-4 getReceiveBufferDataSize ................................................................................................ 83
7-5-5 getStatus ........................................................................................................................... 85
7-6 NV 이미지 ...................................................................................................................................... 87
7-6-1 defineNvImage .................................................................................................................. 87
7-6-2 defineNvImage .................................................................................................................. 89
7-6-3 getDefinedNvImageKeyCodes ......................................................................................... 91
7-6-4 printNvImage ..................................................................................................................... 93
7-6-5 removeAllNvImage ............................................................................................................ 95
7-6-6 removeNvImage ................................................................................................................ 97
7-7 페이지 모드 ................................................................................................................................... 99
7-7-1 printBox ............................................................................................................................. 99
7-7-2 printLine........................................................................................................................... 101
7-7-3 setAbsolutePrintPosition ................................................................................................. 103
7-7-4 setAbsoluteVerticalPrintPosition ..................................................................................... 103
7-7-5 setPageMode .................................................................................................................. 103
7-7-6 setPrintArea .................................................................................................................... 104
7-7-7 setPrintDirection .............................................................................................................. 104
7-7-8 setStandardMode ............................................................................................................ 104

Rev. 1.07 -3-


POS 프린터
7-8 라벨 모드 ..................................................................................................................................... 106
7-8-1 executeAutomaticCalibration .......................................................................................... 106
7-8-2 setLabelMode.................................................................................................................. 108
7-8-3 setReceiptMode ...............................................................................................................110
7-9 MSR ...............................................................................................................................................112
7-9-1 cancelMsrReaderMode ....................................................................................................112
7-9-2 getMsrMode .....................................................................................................................114
7-9-3 setMsrReaderMode .........................................................................................................116
7-10 설정 .............................................................................................................................................118
7-10-1 getBsCodePage .............................................................................................................118
7-10-2 getPowerSavingMode ................................................................................................... 120
7-10-3 getPrintDensity .............................................................................................................. 122
7-10-4 getPrintSpeed ............................................................................................................... 124
7-10-5 setBsCodePage ............................................................................................................ 126
7-10-6 setDoubleByteFont ....................................................................................................... 128
7-10-7 setPowerSavingMode ................................................................................................... 130
7-10-8 setPrintDensity .............................................................................................................. 132
7-10-9 setPrintSpeed................................................................................................................ 134
7-10-10 setSingleByteFont ....................................................................................................... 136
7-11 기타 기능 ................................................................................................................................... 138
7-11-1 cutPaper ........................................................................................................................ 138
7-11-2 cutPaper ........................................................................................................................ 140
7-11-3 executeDirectIo ............................................................................................................. 142
7-11-4 getMacAddress ............................................................................................................. 144
7-11-5 getMonoPixels............................................................................................................... 146
7-11-6 getMonoPixels............................................................................................................... 148
7-11-7 getUsbSerial.................................................................................................................. 150
7-11-8 initialize ......................................................................................................................... 152
7-11-9 kickOutDrawer............................................................................................................... 154
7-11-10 setPrintColor ............................................................................................................... 156
7-11-11 shutDown .................................................................................................................... 158
7-11-12 updateFirmware .......................................................................................................... 160

8. Programming .................................................................................................................................... 162


8-1 Programming Flow........................................................................................................................ 162
8-2 프린터 검색 ................................................................................................................................. 162
8-3 프린터 포트 열기 ........................................................................................................................ 163
8-4 인쇄 데이터 송신 ........................................................................................................................ 164
8-5 프린터 포트 닫기 ........................................................................................................................ 164

9. 부록 .................................................................................................................................................... 165
9-1 프린터 모델별 지원 메소드 ........................................................................................................ 165

Rev. 1.07 -4-


POS 프린터

1. 매뉴얼 안내
이 매뉴얼은 ㈜빅솔론의 프린터를 사용해서 안드로이드용 애플리케이션을 구성하고 설
계하기 위한 정보를 제공하기 위해 만들어졌습니다.

저희 ㈜빅솔론은 제품의 기능과 품질 향상을 위하여 지속적인 개선을 하고 있습니다.


이로 인하여 제품의 사양과 매뉴얼의 내용은 사전 통보 없이 변경될 수 있습니다.

Rev. 1.07 -5-


POS 프린터

2. BIXOLON Printer SDK for Android 개요

2-1 특징

2-1-1 안드로이드 애플리케이션에서 ㈜빅솔론의 모바일 프린터와 POS 프린터로


인쇄하는 것을 용이하게 합니다.

2-1-2 안드로이드 애플리케이션에서 프린터의 상태 확인을 용이하게 합니다.

2-2 기능

2-2-1 인쇄 설정 (정렬 / 페이지 모드)

2-2-2 문자 데이터 설정 (코드 페이지 / 디바이스 폰트 타입)

2-2-3 문자 스타일 설정 (bold / 음영 / 밑줄)

2-2-4 이미지 인쇄 (raster bit / NV graphics)

2-2-5 1차원 바코드 인쇄 (모델별 인쇄 가능한 바코드 타입은 프린터 사양 참고)

2-2-6 2차원 바코드 인쇄 (모델별 인쇄 가능한 바코드 타입은 프린터 사양 참고)

2-2-7 금전등록기 열기 기능 / 멜로디 박스 울림 기능

2-2-8 프린터 커맨드 송신

2-2-9 프린터 응답 수신 (인쇄 결과 / 프린터 상태)

Rev. 1.07 -6-


POS 프린터

3. 동작 환경

3-1 Android 버전

3-1-1 블루투스, 무선랜 연결 사용: Android 2.2 (Froyo) 이상

3-1-2 USB 연결 사용: Android 3.1 (Honeycomb) 이상

3-2 프린터 인터페이스


3-2-1 블루투스

3-2-2 무선랜

3-2-3 유선랜

3-2-4 USB

Rev. 1.07 -7-


POS 프린터

4. 개발 환경

4-1 시스템 요구 사항

4-1-1 운영 체제
 Windows XP (32-bit), Vista (32- or 64-bit), or Windows 7 (32- or 64-bit)
 Mac OS X 10.5.8 or later (x86 only)
 Linux (tested on Ubuntu Linux, Lucid Lynx)
GNU C Library (glibc) 2.7 or later is required.
On Ubuntu Linux, version 8.04 or later is required.
64-bit distributions must be capable of running 32-bit applications.

4-1-2 Eclipse IDE


 Eclipse 3.6.2 (Helios) or greater
 JDK 6 (JRE alone is not sufficient)
 Android SDK
 ADT(Android Development Tools) plugin
 참고: http://developer.android.com/sdk/index.html

Rev. 1.07 -8-


POS 프린터

4-2 안드로이드 장치 연결

아래 스크린샷은 Android 4.2 스마트폰에서 캡쳐한 것입니다. 스크린샷과 항목 이름은


Android 운영체제 또는 장치에 따라 다를 수 있습니다.

4-2-1 Bluetooth
1. Settings를 선택합니다.
2. 반드시 Bluetooth가 켜져 있고, 프린터의 전원이 켜져 있어야 합니다.
3. 설정을 위해 Bluetooth를 선택합니다.

4. Scan을 선택합니다. 연결하기 위한 프린터를 검색하고 페어링 합니다.


5. PIN code를 입력합니다. ㈜빅솔론의 초기 PIN code는 “0000” 입니다.

Rev. 1.07 -9-


POS 프린터

4-2-2 Network (LAN / WLAN)


1. 프린터를 네트워크 AP(Access Point)에 연결하고 IP 주소를 할당하거나 DHCP
로 설정합니다. ㈜빅솔론의 프린터는 초기에 Ad-hoc으로 설정되어 있기 때문에,
마스터 CD에 포함되어 있는 Net Configuration Tool로 최초 한 번은 설정을 해야
됩니다. Net Configuration Tool은 ㈜빅솔론의 웹사이트에서도 다운로드 받으실 수
있습니다.
2. Settings를 선택합니다.
3. Wi-Fi가 켜져 있어야 합니다.
4. ㈜빅솔론의 프린터가 연결되어 있는 네트워크와 동일한 네트워크에 연결합니다.

5. 안드로이드 장치를 프린터의 TCP/IP 포트에 연결하기 위해 추가 설정은 필요하


지 않습니다.

Rev. 1.07 - 10 -
POS 프린터

4-2-3 USB
1. 안드로이드 장치는 OS 버전 3.1 이상부터 USB 주변 장치 연결이 가능합니다.
2. 안드로이드 장치에 ㈜빅솔론의 특정 드라이버나 프린터 소프트웨어가 설치되어
있을 필요는 없습니다.
3. 필요한 USB 케이블은 스마트폰이나 태블릿에 따라 달라질 수 있습니다. 대부분
의 안드로이드 장치는 A to B USB 케이블을 제공하지 않습니다. Mini/micro USB
케이블이나 아답터/dock이 필요할 수 있습니다. 사용하려는 안드로이드 장치에
알맞은 케이블을 사용하는지 확인해야 합니다.
4. ㈜빅솔론의 프린터를 처음 연결하는 경우, 안드로이드 장치에 따라서 위와 같은
메시지가 나타날 수 있습니다.

5. USB 주변 장치를 연결하기 위해서는 아래 코드를 AndroidManifest.xml과


res/xml/device_filter.xml에 입력해야 합니다.

Rev. 1.07 - 11 -
POS 프린터

[AndroidManifest.xml]

<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
/>
</intent-filter>

<meta-data
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter" />

[device_filter.xml]

<?xml version="1.0" encoding="utf-8"?>


<resources>

<usb-device
class="7"
protocol="2"
subclass="1"
vendor-id="5380" />

</resources>

Rev. 1.07 - 12 -
POS 프린터

4-2-4 Android 장치 개발자 옵션 설정


1. Settings를 선택합니다.
2. Developer options를 선택합니다.
3. USB debugging을 활성화 합니다.

4-3 라이브러리 포함 및 샘플 애플리케이션 실행

Eclipse에 ADT(Android Development Tool) plugin이 설정되어 있어야 합니다.

4-3-1 Eclipse에서 안드로이드 프로젝트를 import하는 방법


1. Eclipse를 실행합니다.
2. File – Import를 선택합니다.
3. General – Existing Project into Workspace를 선택합니다.
4. Browse를 선택해서 BixolonPrinterSample 프로젝트가 있는 경로를 지정합니다.

4-3-2 프로젝트 실행/디버그


1. Project – Run/Debug를 선택합니다.

Rev. 1.07 - 13 -
POS 프린터

5. 패키지 콘텐츠

5-1 패키지

 doc/Manual_POS_Android Printer SDK API Reference Guide_korean


_Rev_1_xx.pdf: 한글 매뉴얼
 doc/Manual_POS_Android Printer SDK API Reference Guide_English
_Rev_1_xx.pdf: 영문 매뉴얼
 libs/BixolonPrinter.jar: 프린터 라이브러리
 libs/BixolonPrinterWithDoubleByteFontBinary.jar: POS 프린터에 설정할 수 있는
double byte font binary가 포함된 프린터 라이브러리 (KS5601, BIG5, GB2312,
SHIFT-JIS)
 sample/BixolonPrinterSample: 샘플 프로그램 프로젝트 폴더

5-2 다운로드

BIXOLON Printer SDK for Android를 다운로드 받을 수 있도록 아래 웹사이트를 제공합


니다.
http://www.bixolon.com/html/en/download/download_category.xhtml?ca_id=104&large_cd
=0011&small_cd=0002

Rev. 1.07 - 14 -
POS 프린터

6. 샘플 프로그램
이 장에서는 샘플 프로그램 사용 방법에 대해 설명합니다. (BixolonPrinterSample)
이 샘플 프로그램은 Eclipse를 사용하는 Android 애플리케이션 프로젝트로 제공됩니다.

6-1 기능
 프린터 검색
 프린터 연결
 프린터 연결 해제
 텍스트 인쇄
 이미지 파일 인쇄
 1차원 바코드 인쇄
 2차원 바코드 인쇄
 페이지 모드에서의 인쇄
 용지 절단
 프린터 상태 확인
 프린터 정보 확인

6-2 환경 구성
1. BIXOLON Printer SDK for Android 패키지를 임의의 경로에 압축 해제합니다.
2. Eclipse에서 File – Import를 선택하고, 나타나는 다이얼로그에서
General – Existing Project into Workspace를 선택합니다.
3. Browse를 선택해서 BixolonPrinterSample이 저장된 경로를 선택합니다.
4. Package Explorer의 BixolonPrinterSample에서 마우스 오른쪽 버튼을 클릭하고,
Properties를 선택합니다.
5. Java Build Path의 Libraries 탭에서 Add JARs를 선택하고 lib/BixolonPrinter.jar
또는 lib/BixolonPrinterWithDoubleByteFontBinary.jar를 선택합니다.
6. Package Explorer의 BixolonPrinterSample에서 마우스 오른쪽 버튼을 클릭하고,
Run As – Android Applicaiont을 선택합니다.
7. 샘플 프로그램이 target Android 장치에 설치되면, BixolonPrinterSample 애플리케
이션을 선택해서 실행합니다.

Rev. 1.07 - 15 -
POS 프린터

6-3 사용 방법

6-3-1 프린터 검색 및 연결
1. 샘플 프로그램을 실행합니다.
2. 옵션 메뉴를 선택합니다. 블루투스, 네트워크, USB 중 연결할 인터페이스를 선
택합니다.
A. 블루투스를 선택하면 페어링 되어 있는 프린터의 MAC 주소 목록 대화상자
가 나타납니다.
B. 네트워크를 선택하면 연결 가능한 프린터의 IP 주소 목록 대화상자가 나타
납니다.
C. USB를 선택하면 안드로이드 장치와 USB로 연결된 프린터의 장치 정보 목
록 대화상자가 나타납니다.
3. 장치 목록 대화상자에서 연결할 프린터를 선택합니다.
4. 타이틀 부분에 “connected to [프린터 모델명 또는 USB 장치 ID]”가 나타나면 연
결이 완료된 것입니다.
5. 연결이 완료되면 프린터 기능 목록이 활성화 됩니다. 프린터 모델별 지원 기능
은 부록을 참고하시기 바랍니다.

Rev. 1.07 - 16 -
POS 프린터

7. API Reference
이 장에서는 Printer SDK에서 제공하는 API에 대해 설명합니다.

7-1 프린터 instance 생성

7-1-1 생성자

프린터를 사용하기 위한 BixolonPrinter instance를 생성합니다.


BixolonPrinter 클래스에서 제공하는 메소드는 비동기적으로 동작하도록 구성되어 있습
니다. 프린터로부터 응답을 받는 경우에는 프린터의 응답 수신을 완료한 후 다른 메소
드를 실행해야 됩니다.
다수의 프린터를 연결해서 사용하는 경우 각 프린터마다 instance를 생성해야 됩니다.

* Syntax
public BixolonPrinter(Context context, Handler handler, Looper looper)

* Parameters
- context: Android의 Wi-Fi 서비스와 USB 서비스, 그리고 파일 시스템에 접근하기
위한 context instance 입니다.
- handler: 연결과 인쇄 메시지를 수신하기 위한 애플리케이션 핸들러입니다.
- looper: BixolonPrinter instance를 별도의 thread에서 생성하는 경우 애플리케이션
의 main looper를 설정하면 됩니다. 애플리케이션 핸들러와 프린터 라이브러리
내부 핸들러의 충돌을 피하기 위함입니다. BixolonPrinter intance를 main thread
에서 생성하는 경우 null로 설정하면 됩니다.

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- SPP-100II
- STP-103II
- SRP-275II

Rev. 1.07 - 17 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public Boolean handleMessage(Message msg) {

}
};
}

Rev. 1.07 - 18 -
POS 프린터

7-2 프린터 검색

7-2-1 findBluetoothPrinters

블루투스로 페어링된 장치 정보를 가져와서 애플리케이션 핸들러에


MESSAGE_BLUETOOTH_DEVICE_SET 메시지를 전달합니다.
메시지에는 페어링된 블루투스 장치의 정보가 포함되어 있습니다.
페어링된 블루투스 장치가 없는 경우 null을 포함해서 전달합니다.

* Syntax
public void findBluetoothPrinters()

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-350IIOBE

Rev. 1.07 - 19 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.findBluetoothPrinters();

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_BLUETOOTH_DEVICE_SET:
Set<BluetoothDevice> bluetoothDeviceSet =
(Set<BluetoothDevice>) msg.obj;
for (BluetoothDevice device : bluetoothDeviceSet) {
if (device.getName().equals(“SPP-R200II”)) {
// TODO: 프린터 연결
break;
}
}
break;
}
return true;
}
};
}

Rev. 1.07 - 20 -
POS 프린터

7-2-2 findNetworkPrinters

애플리케이션을 실행하는 Android 장치와 동일한 네트워크에 있는 프린터를 검색합니


다.
검색이 완료되면 애플리케이션 핸들러에 MESSAGE_NETWORK_DEVICE_SET 메시지
를 전달합니다.
메시지에는 연결 가능한 프린터의 IP 주소 정보가 포함되어 있습니다.
연결 가능한 프린터가 없는 경우 null을 포함합니다.

* Syntax
public void findNetworkPrinters(int timeout)

* Parameters
- timeout: 프린터를 검색하는 시간 (밀리초)

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-275II

Rev. 1.07 - 21 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.findNetworkPrinters(5000);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_NETWORK_DEVICE_SET:
if (msg.obj != null) {
Set<String> ipAddressSet = (Set<String>) msg.obj;
for (String ipAddress : ipAddressSet) {
if (ipAddress.equals(“192.168.0.100”)) {
// TODO: 프린터 연결
break;
}
}
}
break;
}
return true;
}
};
}

Rev. 1.07 - 22 -
POS 프린터

7-2-3 findUsbPrinters

애플리케이션을 실행하는 Android 장치와 USB로 연결되어 있는 프린터 정보를 가져와


서 애플리케이션 핸들러에 MESSAGE_USB_DEVICE_SET 메시지를 전달합니다.
메시지에는 USB로 연결된 프린터의 정보가 포함되어 있습니다.
USB로 연결된 프린터가 없는 경우 null을 포함합니다.

* Syntax
public void findUsbPrinters()

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 23 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.findUsbPrinters();

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_USB_DEVICE_SET:
Set<UsbDevice> usbDeviceSet = (Set<UsbDevice>) msg.obj;
for (UsbDevice device : usbDeviceSet) {
if (device.getProductId() == 0x28) { // SPP-R200II
// TODO: 프린터 연결
break;
}
}
break;
}
return true;
}
};
}

Rev. 1.07 - 24 -
POS 프린터

7-2-4 findUsbPrintersBySerial

애플리케이션을 실행하는 Android 장치와 USB로 연결되어 있는 프린터 정보를 가져와


서 애플리케이션 핸들러에 MESSAGE_USB_SERIAL_SET 메시지를 전달합니다.
이 메소드는 동일한 모델의 프린터가 여러 대 연결되어 있는 경우 USB serial 번호로
프린터를 구분하기 위해 사용하는 메소드 입니다.
제품마다 USB serial 번호가 서로 다른 프린터 모델에서만 사용할 수 있습니다.
메시지에는 USB로 연결된 프린터의 USB serial 번호 정보가 포함되어 있습니다.
USB로 연결된 프린터가 없는 경우 null을 전달합니다.

* Syntax
public void findUsbPrintersBySerial()

* 지원 프린터
- SRP-350IIOBE

Rev. 1.07 - 25 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.findUsbPrintersBySerial();

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_USB_SERIAL_SET:
Set<String> usbSerialSet = (Set<String>) msg.obj;
for (String usbSerial : usbSerialSet) {
if (usbSerialSet.equals(“xxxxxxxxxxxx”)) {
// TODO: 프린터 연결
break;
}
}
break;
}
return true;
}
};

Rev. 1.07 - 26 -
POS 프린터

7-3 프린터 연결

7-3-1 connect

USB로 연결된 프린터의 포트를 열어 통신할 수 있도록 합니다.


연결을 시작하면 arg1 에 STATE_CONNECTING을 포함한
MESSAGE_STATE_CHANGE 메시지를, 연결이 완료되면 arg1에 STATE_CONNECTED
을 포함한 MESSAGE_STATE_CHANGE 메시지를 애플리케이션 핸들러에 전달합니다.
이 메소드 실행하면 아래 순서대로 애플리케이션 핸들러로 메시지를 전달합니다.

* 연결을 성공하는 경우
1. MESSAGE_STATE_CHANGE (arg1: STATE_CONNECTING): 연결 중인 상태
2. MESSAGE_DEVICE_NAME: 프린터의 포트 연결을 성공한 상태 (Android 장치
에 인식된 프린터의 USB device name을 전달합니다.)
3. MESSAGE_STATE_CHANGE (arg1: STATE_CONNECTED): 프린터와 통신이 가
능한 상태

* 연결을 실패하는 경우
1. MESSAGE_TOAST: “Unable to connect device” 메시지 전달
2. MESSAGE_STATE_CHANGE (arg1: STATE_NONE): 연결이 종료된 상태

* Syntax
public void connect()

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 27 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect();

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
switch (msg.arg1) {
case BixolonPrinter.STATE_CONNECTING:
// TODO: 프린터를 연결중인 상태 처리
break;

case BixolonPrinter.STATE_CONNECTED:
// TODO: 프린터 연결을 완료한 상태 처리
break;

case BixolonPrinter.STATE_NONE:
// TODO: 프린터를 연결이 종료된 상태 처리
break;
}
break;

case BixolonPrinter.MESSAGE_DEVICE_NAME:
String connectedDeviceName =
msg.getData().getString(
BixolonPrinter.KEY_STRING_DEVICE_NAME);
break;

case BixolonPrinter.MESSAGE_TOAST:
Toast.makeText(getApplicationContext(),
msg.getData().getString(BixolonPrinter.KEY_STRING_TOAST),
Toast.LENGTH_SHORT).show();
break;
}
return true;
}
};
}

Rev. 1.07 - 28 -
POS 프린터

7-3-2 connect

블루투스로 페어링된 프린터의 포트를 열어 통신할 수 있도록 합니다.


연결을 시작하면 arg1 에 STATE_CONNECTING을 포함한
MESSAGE_STATE_CHANGE 메시지를, 연결이 완료되면 arg1에 STATE_CONNECTED
을 포함한 MESSAGE_STATE_CHANGE 메시지를 애플리케이션 핸들러에 전달합니다.
이 메소드 실행하면 아래 순서대로 애플리케이션 핸들러로 메시지를 전달합니다.

* 연결을 성공하는 경우
1. MESSAGE_STATE_CHANGE (arg1: STATE_CONNECTING): 연결 중인 상태
2. MESSAGE_DEVICE_NAME: 프린터의 포트 연결을 성공한 상태 (Android 장치
에 인식된 프린터의 USB device name을 전달합니다.)
3. MESSAGE_STATE_CHANGE (arg1: STATE_CONNECTED): 프린터와 통신이 가
능한 상태

* 연결을 실패하는 경우
1. MESSAGE_TOAST: “Unable to connect device” 메시지 전달
2. MESSAGE_STATE_CHANGE (arg1: STATE_NONE): 연결이 종료된 상태

* Syntax
public void connect(String address)

* Parameters
- address: 연결할 프린터의 블루투스 MAC 주소 (Self-test로 확인할 수 있습니
다.) null일 경우, 페어링된 프린터 중 가장 먼저 검색된 프린터에 연결을 시도합
니다.

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-350IIOBE

Rev. 1.07 - 29 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

String address = “01:23:45:67:89:ab”;


mBixolonPrinter = new BixolonPrinter(this, mHandler, null);
mBixolonPrinter.connect(address);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
switch (msg.arg1) {
case BixolonPrinter.STATE_CONNECTING:
// TODO: 프린터를 연결중인 상태 처리
break;

case BixolonPrinter.STATE_CONNECTED:
// TODO: 프린터 연결을 완료한 상태 처리
break;

case BixolonPrinter.STATE_NONE:
// TODO: 프린터를 연결이 종료된 상태 처리
break;
}
break;

case BixolonPrinter.MESSAGE_DEVICE_NAME:
String connectedDeviceName =
msg.getData().getString(
BixolonPrinter.KEY_STRING_DEVICE_NAME);
break;

case BixolonPrinter.MESSAGE_TOAST:
Toast.makeText(getApplicationContext(),
msg.getData().getString(BixolonPrinter.KEY_STRING_TOAST),
Toast.LENGTH_SHORT).show();
break;
}
return true;
}
};
}

Rev. 1.07 - 30 -
POS 프린터

7-3-3 connect

유선랜이나 무선랜으로 연결된 프린터의 포트를 열어 통신할 수 있도록 합니다.


연결을 시작하면 arg1 에 STATE_CONNECTING을 포함한
MESSAGE_STATE_CHANGE 메시지를, 연결이 완료되면 arg1에 STATE_CONNECTED
을 포함한 MESSAGE_STATE_CHANGE 메시지를 애플리케이션 핸들러에 전달합니다.
이 메소드 실행하면 아래 순서대로 애플리케이션 핸들러로 메시지를 전달합니다.

* 연결을 성공하는 경우
1. MESSAGE_STATE_CHANGE (arg1: STATE_CONNECTING): 연결 중인 상태
2. MESSAGE_DEVICE_NAME: 프린터의 포트 연결을 성공한 상태 (Android 장치
에 인식된 프린터의 USB device name을 전달합니다.)
3. MESSAGE_STATE_CHANGE (arg1: STATE_CONNECTED): 프린터와 통신이 가
능한 상태

* 연결을 실패하는 경우
1. MESSAGE_TOAST: “Unable to connect device” 메시지 전달
2. MESSAGE_STATE_CHANGE (arg1: STATE_NONE): 연결이 종료된 상태

* Syntax
public void connect(String host, int port, int timeout)

* Parameters
- host: 연결할 프린터의 IP 주소
- port: 연결할 프린터의 포트 번호 (9100만 가능합니다.)
- timeout: 프린터를 연결할 때의 타임아웃 (밀리초)

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-275II

Rev. 1.07 - 31 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(“192.168.0.100”, 9100, 5000);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
switch (msg.arg1) {
case BixolonPrinter.STATE_CONNECTING:
// TODO: 프린터를 연결중인 상태 처리
break;

case BixolonPrinter.STATE_CONNECTED:
// TODO: 프린터 연결을 완료한 상태 처리
break;

case BixolonPrinter.STATE_NONE:
// TODO: 프린터를 연결이 종료된 상태 처리
break;
}
break;

case BixolonPrinter.MESSAGE_DEVICE_NAME:
String connectedDeviceName =
msg.getData().getString(
BixolonPrinter.KEY_STRING_DEVICE_NAME);
break;

case BixolonPrinter.MESSAGE_TOAST:
Toast.makeText(getApplicationContext(),
msg.getData().getString(BixolonPrinter.KEY_STRING_TOAST),
Toast.LENGTH_SHORT).show();
break;
}
return true;
}
};
}

Rev. 1.07 - 32 -
POS 프린터

7-3-4 connect

USB로 연결된 프린터의 포트를 열어 통신할 수 있도록 합니다.


연결을 시작하면 arg1 에 STATE_CONNECTING을 포함한
MESSAGE_STATE_CHANGE 메시지를, 연결이 완료되면 arg1에 STATE_CONNECTED
을 포함한 MESSAGE_STATE_CHANGE 메시지를 애플리케이션 핸들러에 전달합니다.
이 메소드 실행하면 아래 순서대로 애플리케이션 핸들러로 메시지를 전달합니다.

* 연결을 성공하는 경우
1. MESSAGE_STATE_CHANGE (arg1: STATE_CONNECTING): 연결 중인 상태
2. MESSAGE_DEVICE_NAME: 프린터의 포트 연결을 성공한 상태 (Android 장치
에 인식된 프린터의 USB device name을 전달합니다.)
3. MESSAGE_STATE_CHANGE (arg1: STATE_CONNECTED): 프린터와 통신이 가
능한 상태

* 연결을 실패하는 경우
1. MESSAGE_TOAST: “Unable to connect device” 메시지 전달
2. MESSAGE_STATE_CHANGE (arg1: STATE_NONE): 연결이 종료된 상태

* Syntax
public void connect(UsbDevice device)

* Parameters
- device: 연결할 UsbDevice instance. findUsbPrinters() 실행에 대한 응답 메시지
로 받을 수 있습니다.

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 33 -
POS 프린터

* Example
public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.findUsbPrinters();

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_USB_DEVICE_SET:
Set<UsbDevice> usbDeviceSet = (Set<UsbDevice>) msg.obj;
for (UsbDevice device : usbDeviceSet) {
if (device.getProductId() == 0x28) { // SPP-R200II
mBixolonPrinter.connect(device);
break;
}
}
return true;

case BixolonPrinter.MESSAGE_STATE_CHANGE:
switch (msg.arg1) {
case BixolonPrinter.STATE_CONNECTING:
// TODO: 프린터를 연결중인 상태 처리
break;

case BixolonPrinter.STATE_CONNECTED:
// TODO: 프린터 연결을 완료한 상태 처리
break;

case BixolonPrinter.STATE_NONE:
// TODO: 프린터를 연결이 종료된 상태 처리
break;
}
break;

case BixolonPrinter.MESSAGE_DEVICE_NAME:
String connectedDeviceName =
msg.getData().getString(
BixolonPrinter.KEY_STRING_DEVICE_NAME);
break;

case BixolonPrinter.MESSAGE_TOAST:
Toast.makeText(getApplicationContext(),
msg.getData().getString(BixolonPrinter.KEY_STRING_TOAST),
Toast.LENGTH_SHORT).show();
break;
}
return true;
}
};
}

Rev. 1.07 - 34 -
POS 프린터

7-3-5 connectUsb

USB로 연결된 프린터의 포트를 열어 통신할 수 있도록 합니다.


연결을 시작하면 arg1 에 STATE_CONNECTING을 포함한
MESSAGE_STATE_CHANGE 메시지를, 연결이 완료되면 arg1에 STATE_CONNECTED
을 포함한 MESSAGE_STATE_CHANGE 메시지를 애플리케이션 핸들러에 전달합니다.
이 메소드 실행하면 아래 순서대로 애플리케이션 핸들러로 메시지를 전달합니다.

* 연결을 성공하는 경우
1. MESSAGE_STATE_CHANGE (arg1: STATE_CONNECTING): 연결 중인 상태
2. MESSAGE_DEVICE_NAME: 프린터의 포트 연결을 성공한 상태 (Android 장치
에 인식된 프린터의 USB device name을 전달합니다.)
3. MESSAGE_STATE_CHANGE (arg1: STATE_CONNECTED): 프린터와 통신이 가
능한 상태

* 연결을 실패하는 경우
1. MESSAGE_TOAST: “Unable to connect device” 메시지 전달
2. MESSAGE_STATE_CHANGE (arg1: STATE_NONE): 연결이 종료된 상태

* Syntax
public void connectUsb(String serial)

* Parameters
- device: 연결할 프린터의 USB serial 번호. findUsbPrintersBySerial() 실행에 대한
응답 메시지로 받을 수 있습니다.

지원 프린터
- SRP-350IIOBE

Rev. 1.07 - 35 -
POS 프린터

* Example
public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.findUsbPrintersBySerial();

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_USB_SERIAL_SET:
Set<String> usbSerialSet = (Set<String>) msg.obj;
for (String serial : usbSerialSet) {
if (serial.equals(“xxxxxxxxxxxx”)) {
mBixolonPrinter.connectUsb(serial);
break;
}
}
return true;

case BixolonPrinter.MESSAGE_STATE_CHANGE:
switch (msg.arg1) {
case BixolonPrinter.STATE_CONNECTING:
// TODO: 프린터를 연결중인 상태 처리
break;

case BixolonPrinter.STATE_CONNECTED:
// TODO: 프린터 연결을 완료한 상태 처리
break;

case BixolonPrinter.STATE_NONE:
// TODO: 프린터를 연결이 종료된 상태 처리
break;
}
break;

case BixolonPrinter.MESSAGE_DEVICE_NAME:
String connectedDeviceName =
msg.getData().getString(
BixolonPrinter.KEY_STRING_DEVICE_NAME);
break;

case BixolonPrinter.MESSAGE_TOAST:
Toast.makeText(getApplicationContext(),
msg.getData().getString(BixolonPrinter.KEY_STRING_TOAST),
Toast.LENGTH_SHORT).show();
break;

}
return true;
}
};
}

Rev. 1.07 - 36 -
POS 프린터

7-3-6 disconnect

연결된 프린터의 포트를 닫고 연결을 해제합니다.


연결이 해제되면 MESSAGE_STATE_CHANGE 메시지(arg1: STATE_NONE)를 애플리케
이션 핸들러에 전달합니다.

* Syntax
public void disconnect()

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- SPP-100II
- STP-103II
- SRP-275II

Rev. 1.07 - 37 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
switch (msg.arg1) {
case BixolonPrinter.STATE_CONNECTING:
// TODO: 프린터를 연결중인 상태 처리
break;

case BixolonPrinter.STATE_CONNECTED:
mBixolonPrinter.disconnect();
break;

case BixolonPrinter.STATE_NONE:
Toast.makeText(getApplicationContext(), “Printer is disconnected”,
Toast.LENGTH_SHORT).show();
break;
}
break;
}
return true;
}
};
}

Rev. 1.07 - 38 -
POS 프린터

7-4 인쇄

7-4-1 formFeed

페이지 모드나 라벨 모드에서 용지 피딩을 실행합니다.

* Syntax
public void formFeed(boolean getResponse)

* Parameters
- getResponse: true일 경우, 피딩이 완료되면 애플리케이션 핸들러로 메시지를 전
달합니다. false일 경우, 피딩만 실행하고 애플리케이션 핸들러로 메시지를 전달
하지 않습니다.

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312

Rev. 1.07 - 39 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == STATE_CONNECTED) {
// TODO: 인쇄
mBixolonPrinter.formFeed(true);
}
break;

case MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 40 -
POS 프린터

7-4-2 lineFeed

지정된 라인만큼 용지를 피딩합니다.

* Syntax
public void lineFeed(int lines, boolean getResponse)

* Parameters
- lines: 피딩할 라인 수
- getResponse: true일 경우, 피딩이 완료되면 애플리케이션 핸들러로 메시지를 전
달합니다. false일 경우, 피딩만 실행하고 애플리케이션 핸들러로 메시지를 전달
하지 않습니다.

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- SPP-100II
- STP-103II
- SRP-275II

Rev. 1.07 - 41 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case MESSAGE_STATE_CHANGE:
if (msg.arg1 == STATE_CONNECTED) {
mBixolonPrinter.lineFeed(5, true);
}
break;

case MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 42 -
POS 프린터

7-4-3 print1dBarcode

1차원 바코드를 인쇄합니다.

* Syntax
public void print1dBarcode(
String data, int barCodeSystem, int alignment, int width, int height,
int characterPosition, boolean getResponse)

* Parameters
- data: 인쇄할 바코드 데이터
- barCodeSystem: 바코드 시스템
Code Value Description
BAR_CODE_UPC_A 65 UPC-A
BAR_CODE_UPC_E 66 UPC-E
BAR_CODE_EAN13 67 EAN13
BAR_CODE_EAN8 68 EAN8
BAR_CODE_CODE39 69 CODE93
BAR_CODE_ITF 70 ITF
BAR_CODE_CODABAR 71 CODABAR
BAR_CODE_CODE93 72 CODE93
BAR_CODE_CODE128 73 CODE128
- alignment: 바코드 정렬
Code Value Description
ALIGNMENT_LEFT 0 왼쪽 정렬
ALIGNMENT_CENTER 1 가운데 정렬
ALIGNMENT_RIGHT 2 오른쪽 정렬
- width: 바코드의 너비 (1 ~ 6)
- height: 바코드의 높이 (1 ~ 255)
- characterPosition: 바코드 데이터 문자열을 인쇄할 위치
Code Value
Description
문자열을
HRI_CHARACTER_NOT_PRINTED 0
인쇄하지 않음
문자열을 바코드
HRI_CHARACTER_ABOVE_BAR_CODE 1
상단에 인쇄
문자열을 바코드
HRI_CHARACTER_BELOW_BAR_CODE 2
하단에 인쇄
문자열을 바코드
HRI_CHARACTER_ABOVE_AND_BELOW_BAR_CODE 3 상단과 하단에
인쇄
- getResponse: true일 경우, 인쇄가 완료되면 애플리케이션 핸들러로 메시지를 전
달합니다. false일 경우, 인쇄만 실행하고 애플리케이션 핸들러로 메시지를 전달
하지 않습니다.

Rev. 1.07 - 43 -
POS 프린터

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.print1dBarcode(“012345678905”,
BixolonPrinter.BAR_CODE_UPC_A,
BixolonPrinter.ALIGNMENT_LEFT, 3, 162,
BixolonPrinter.HRI_CHARACTER_ABOVE_BAR_CODE, true);
}
break;

case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 44 -
POS 프린터

7-4-4 printBitmap

Bitmap instance를 흑백 이미지 데이터로 변환해서 인쇄합니다.

* Syntax
public void printBitmap(
Bitmap bitmap, int alignment, int width, int level, boolean getResponse)

* Parameter
- bitmap: 인쇄할 Bitmap instance
- alignment: 이미지 정렬
Code Value Description
ALIGNMENT_LEFT 0 왼쪽 정렬
ALIGNMENT_CENTER 1 가운데 정렬
ALIGNMENT_RIGHT 2 오른쪽 정렬
- width: 인쇄할 이미지의 너비
Code Value Description
BITMAP_WIDTH_FULL -1 프린터 최대 너비만큼 늘리거나 줄여서 인쇄
이미지 크기를 변경하지 않고 인쇄
BITMAP_WIDTH_NONE 0 이미지 너비가 프린터 최대 너비보다 큰 경우에는
프린터 최대 너비만큼 줄여서 인쇄
정수 정수 직접 설정
- level: 인쇄할 이미지의 밝기 (13 ~ 88)
- getResponse: true일 경우, 인쇄가 완료되면 애플리케이션 핸들러로 메시지를 전
달합니다. false일 경우, 인쇄만 실행하고 애플리케이션 핸들러로 메시지를 전달
하지 않습니다.

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 45 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
BitmapDrawable drawable =
(BitmapDrawable) getResources().getDrawable(R.drawable.logo);
Bitmap bitmap = drawable.getBitmap();
mBixolonPrinter.printBitmap(bitmap, BixolonPrinter.ALIGNMENT_LEFT,
BixolonPrinter.BITMAP_WIDTH_FULL, 50, true);
}
break;

case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 46 -
POS 프린터

7-4-5 printBitmap

Bitmap instance를 흑백 이미지 데이터로 변환해서 인쇄합니다.

* Syntax
public void printBitmap(
Bitmap bitmap, int alignment, int width, int level, boolean dither, Boolean compress,
boolean getResponse)

* Parameter
- bitmap: 인쇄할 Bitmap instance
- alignment: 이미지 정렬
Code Value Description
ALIGNMENT_LEFT 0 왼쪽 정렬
ALIGNMENT_CENTER 1 가운데 정렬
ALIGNMENT_RIGHT 2 오른쪽 정렬
- width: 인쇄할 이미지의 너비
Code Value Description
BITMAP_WIDTH_FULL -1 프린터 최대 너비만큼 늘리거나 줄여서 인쇄
이미지 크기를 변경하지 않고 인쇄
BITMAP_WIDTH_NONE 0 이미지 너비가 프린터 최대 너비보다 큰 경우에는
프린터 최대 너비만큼 줄여서 인쇄
정수 정수 직접 설정
- level: 인쇄할 이미지의 밝기 (13 ~ 88)
- dither: true일 경우, 이미지를 디더링. false일 경우 이미지를 디더링 하지 않
- compress: true일 경우 이미지를 압축해서 전송. false일 경우 이미지를 압축하지
않고 전송
- getResponse: true일 경우, 인쇄가 완료되면 애플리케이션 핸들러로 메시지를 전
달합니다. false일 경우, 인쇄만 실행하고 애플리케이션 핸들러로 메시지를 전달
하지 않습니다.

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 47 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
BitmapDrawable drawable =
(BitmapDrawable) getResources().getDrawable(R.drawable.logo);
Bitmap bitmap = drawable.getBitmap();
mBixolonPrinter.printBitmap(bitmap, BixolonPrinter.ALIGNMENT_LEFT,
BixolonPrinter.BITMAP_WIDTH_FULL, 50, true, true, true);
}
break;

case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 48 -
POS 프린터

7-4-6 printBitmap

흑백 이미지 데이터를 인쇄합니다.

* Syntax
public void printBitmap(
byte[] pixels, int alignment, int width, int height,boolean getResponse)

* Parameter
- pixels: 인쇄할 이미지 데이터
- alignment: 이미지 정렬
Code Value Description
ALIGNMENT_LEFT 0 왼쪽 정렬
ALIGNMENT_CENTER 1 가운데 정렬
ALIGNMENT_RIGHT 2 오른쪽 정렬
- width: 인쇄할 이미지의 너비
- height: 인쇄할 이미지의 높이
- getResponse: true일 경우, 인쇄가 완료되면 애플리케이션 핸들러로 메시지를 전
달합니다. false일 경우, 인쇄만 실행하고 애플리케이션 핸들러로 메시지를 전달
하지 않습니다.

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 49 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
BitmapDrawable drawable =
(BitmapDrawable) getResources().getDrawable(R.drawable.logo);
Bitmap bitmap = drawable.getBitmap();
mBixolonPrinter.getMonoPixels(bitmap,
BixolonPrinter.BITMAP_WIDTH_FULL, 50);
}
break;

case BixolonPrinter.MESSAGE_COMPLETE_PROCESS_BITMAP:
Bundle data = msg.getData();
byte[] pixels = data.getByteArray(
BixolonPrinter.KEY_STRING_MONO_PIXELS);
If (array != null) {
int width = msg.arg1;
int height = msg.arg2;
mBixolonPrinter.printBitmap(pixels, BixolonPrinter.ALIGNMENT_LEFT,
width, height, true);
}
break;

case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 50 -
POS 프린터

7-4-7 printBitmap

지정된 경로의 이미지 파일을 흑백 이미지 데이터로 변환해서 인쇄합니다.

* Syntax
public void printBitmap(
String pathName, int alignment, int width, int level, boolean getResponse)

* Parameter
- pathName: 인쇄할 이미지 파일의 절대 경로
- alignment: 이미지 정렬
Code Value Description
ALIGNMENT_LEFT 0 왼쪽 정렬
ALIGNMENT_CENTER 1 가운데 정렬
ALIGNMENT_RIGHT 2 오른쪽 정렬
- width: 인쇄할 이미지의 너비. 이미지의 높이는 너비에 비례해서 자동으로 조정
됩니다.
Code Value Description
BITMAP_WIDTH_FULL -1 프린터 최대 너비만큼 늘리거나 줄여서 인쇄
이미지 크기를 변경하지 않고 인쇄
BITMAP_WIDTH_NONE 0 이미지 너비가 프린터 최대 너비보다 큰 경우에는
프린터 최대 너비만큼 줄여서 인쇄
정수 정수 직접 설정
- level: 인쇄할 이미지의 밝기 (13 ~ 88)
- getResponse: true일 경우, 인쇄가 완료되면 애플리케이션 핸들러로 메시지를 전
달합니다. false일 경우, 인쇄만 실행하고 애플리케이션 핸들러로 메시지를 전달
하지 않습니다.

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 51 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
String pathName =
Environment.getExternalStorageDirectory().getAbsolutePath() +
“/logo.png”;
mBixolonPrinter.printBitmap(pathName,
BixolonPrinter.ALIGNMENT_LEFT,
BixolonPrinter.BITMAP_WIDTH_FULL, 50, true);
}
break;

case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 52 -
POS 프린터

7-4-8 printBitmap

지정된 경로의 이미지 파일을 흑백 이미지 데이터로 변환해서 인쇄합니다.

* Syntax
public void printBitmap(
String pathName, int alignment, int width, int level, boolean dither, boolean compress,
boolean getResponse)

* Parameter
- pathName: 인쇄할 이미지 파일의 절대 경로
- alignment: 이미지 정렬
Code Value Description
ALIGNMENT_LEFT 0 왼쪽 정렬
ALIGNMENT_CENTER 1 가운데 정렬
ALIGNMENT_RIGHT 2 오른쪽 정렬
- width: 인쇄할 이미지의 너비. 이미지의 높이는 너비에 비례해서 자동으로 조정
됩니다.
Code Value Description
BITMAP_WIDTH_FULL -1 프린터 최대 너비만큼 늘리거나 줄여서 인쇄
이미지 크기를 변경하지 않고 인쇄
BITMAP_WIDTH_NONE 0 이미지 너비가 프린터 최대 너비보다 큰 경우에는
프린터 최대 너비만큼 줄여서 인쇄
정수 정수 직접 설정
- level: 인쇄할 이미지의 밝기 (13 ~ 88)
- dither: true일 경우, 이미지를 디더링. false일 경우 이미지를 디더링 하지 않
- compress: true일 경우 이미지를 압축해서 전송. false일 경우 이미지를 압축하지
않고 전송
- getResponse: true일 경우, 인쇄가 완료되면 애플리케이션 핸들러로 메시지를 전
달합니다. false일 경우, 인쇄만 실행하고 애플리케이션 핸들러로 메시지를 전달
하지 않습니다.

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 53 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
String pathName =
Environment.getExternalStorageDirectory().getAbsolutePath() +
“/logo.png”;
mBixolonPrinter.printBitmap(pathName,
BixolonPrinter.ALIGNMENT_LEFT,
BixolonPrinter.BITMAP_WIDTH_FULL, 50, true, true, true);
}
break;

case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 54 -
POS 프린터

7-4-9 printDataMatrix

Data Matrix를 인쇄합니다.

* Syntax
public void printDataMatrix(String data, int alignment, int size, boolean getResponse)

* Parameter
- data: 인쇄할 바코드의 데이터
- alignment: 바코드 정렬
Code Value Description
ALIGNMENT_LEFT 0 왼쪽 정렬
ALIGNMENT_CENTER 1 가운데 정렬
ALIGNMENT_RIGHT 2 오른쪽 정렬
- size: 인쇄할 바코드의 크기 (2 ~ 3)
- getResponse: true일 경우, 인쇄가 완료되면 애플리케이션 핸들러로 메시지를 전
달합니다. false일 경우, 인쇄만 실행하고 애플리케이션 핸들러로 메시지를 전달
하지 않습니다.

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400

Rev. 1.07 - 55 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.printDataMatrix(“www.bixolon.com”,
BixolonPrinter.ALIGNMENT_LEFT, 3, true);
}
break;

case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 56 -
POS 프린터

7-4-10 printDotMatrixBitmap

Dot Matrix 방식의 프린터에서 Bitmap instance를 흑백 이미지 데이터로 변환해서 인쇄


합니다.

* Syntax
public void printDotMatrixBitmap(
Bitmap bitmap, int alignment, int width, int level, boolean getResponse)

* Parameter
- bitmap: 인쇄할 Bitmap instance
- alignment: 이미지 정렬
Code Value Description
ALIGNMENT_LEFT 0 왼쪽 정렬
ALIGNMENT_CENTER 1 가운데 정렬
ALIGNMENT_RIGHT 2 오른쪽 정렬
- width: 인쇄할 이미지의 너비. 이미지의 높이는 너비에 비례해서 자동으로 조정
됩니다.
Code Value Description
BITMAP_WIDTH_FULL -1 프린터 최대 너비만큼 늘리거나 줄여서 인쇄
이미지 크기를 변경하지 않고 인쇄
BITMAP_WIDTH_NONE 0 이미지 너비가 프린터 최대 너비보다 큰 경우에는
프린터 최대 너비만큼 줄여서 인쇄
정수 정수 직접 설정
- level: 인쇄할 이미지의 밝기 (13 ~ 88)
- getResponse: true일 경우, 인쇄가 완료되면 애플리케이션 핸들러로 메시지를 전
달합니다. false일 경우, 인쇄만 실행하고 애플리케이션 핸들러로 메시지를 전달
하지 않습니다.

* 지원 프린터
- SRP-275II

Rev. 1.07 - 57 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
BitmapDrawable drawable =
(BitmapDrawable) getResources().getDrawable(R.drawable.logo);
Bitmap bitmap = drawable.getBitmap();
mBixolonPrinter.printDotMatrixBitmap(bitmap,
BixolonPrinter.ALIGNMENT_LEFT,
BixolonPrinter.BITMAP_WIDTH_FULL, 50, true);
}
break;

case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 58 -
POS 프린터

7-4-11 printDotMatrixBitmap

Dot Matrix 방식의 프린터에서 지정된 경로의 이미지 파일을 흑백 이미지 데이터로 변
환해서 인쇄합니다.

* Syntax
public void printDotMatrixBitmap(
String pathName, int alignment, int width, int level, boolean getResponse)

* Parameters
- pathName: 인쇄할 이미지 파일의 절대 경로
- alignment: 이미지 정렬. 설정 가능한 값은 아래 표를 참고하시기 바랍니다.
Code Value Description
ALIGNMENT_LEFT 0 왼쪽 정렬
ALIGNMENT_CENTER 1 가운데 정렬
ALIGNMENT_RIGHT 2 오른쪽 정렬
- width: 인쇄할 이미지의 너비. 이미지의 높이는 너비에 비례해서 자동으로 조정
됩니다. 설정 가능한 값은 아래 표를 참고하시기 바랍니다.
Code Value Description
BITMAP_WIDTH_FULL -1 프린터 최대 너비만큼 늘리거나 줄여서 인쇄
이미지 크기를 변경하지 않고 인쇄
BITMAP_WIDTH_NONE 0 이미지 너비가 프린터 최대 너비보다 큰 경우
에는 프린터 최대 너비만큼 줄여서 인쇄
정수 정수 직접 설정
- level: 인쇄할 이미지의 밝기 (13 ~ 88)
- getResponse: true일 경우, 인쇄가 완료되면 애플리케이션 핸들러로 메시지를 전
달합니다. false일 경우, 인쇄만 실행하고 애플리케이션 핸들러로 메시지를 전달
하지 않습니다.

* 지원 프린터
- SRP-275II

Rev. 1.07 - 59 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
String pathName =
Environment.getExternalStorageDirectory().getAbsolutePath() +
“/logo.png”;
mBixolonPrinter.printDotMatrixBitmap(pathName,
BixolonPrinter.ALIGNMENT_LEFT,
BixolonPrinter.BITMAP_WIDTH_FULL, 50, true);
}
break;

case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 60 -
POS 프린터

7-4-12 printDotMatrixText

Dot Matrix 방식의 프린터에서 문자열을 인쇄합니다.

* Syntax
public void printDotMatrixText(
String text, int alignment, int attribute, int size, boolean getResponse)

* Parameter
- text: 인쇄할 문자열
- alignment: 문자열 정렬
Code Value Description
ALIGNMENT_LEFT 0 왼쪽 정렬
ALIGNMENT_CENTER 1 가운데 정렬
ALIGNMENT_RIGHT 2 오른쪽 정렬
- attribute: 인쇄할 문자열의 속성. 복수 설정을 하는 경우 각 값을 OR 연산해서
설정합니다. 설정 가능한 값은 아래 표를 참고하시기 바랍니다.
Code Value Description
TEXT_ATTRIBUTE_FONT_A 0 폰트 타입 A
TEXT_ATTRIBUTE_FONT_B 1 폰트 타입 B
TEXT_ATTRIBUTE_UNDERLINE1 4 두께 1dot 밑줄
TEXT_ATTRIBUTE_UNDERLINE2 8 두께 2dot 밑줄
TEXT_ATTRIBUTE_EMPHASIZED 16 굵게
- size: 인쇄할 문자열의 크기. 가로 크기와 세로 크기를 OR 연산해서 설정합니다.
설정 가능한 값은 아래 표를 참고하시기 바랍니다.
Code Value Description
TEXT_SIZE_HORIZONTAL1 0 가로크기 1배 확대
TEXT_SIZE_HORIZONTAL2 16 가로크기 2배 확대
TEXT_SIZE_VERTICAL1 0 세로크기 1배 확대
TEXT_SIZE_VERTICAL2 1 세로크기 2배 확대
- getResponse: true일 경우, 인쇄가 완료되면 애플리케이션 핸들러로 메시지를 전
달합니다. false일 경우, 인쇄만 실행하고 애플리케이션 핸들러로 메시지를 전달
하지 않습니다.

* 지원 프린터
- SRP-275II

Rev. 1.07 - 61 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.printDotMatrixText(“printText\n”,
BixolonPrinter.ALIGNMENT_LEFT,
BixolonPrinter.TEXT_ATTRIBUTE_FONT_A |
BixolonPrinter.TEXT_ATTRIBUTE_UNDERLINE1,
BixolonPrinter.TEXT_SIZE_HORIZONTAL1 |
BixolonPrinter.TEXT_SIZE_VERTICAL1, true);
}
break;

case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 62 -
POS 프린터

7-4-13 printMaxiCode

Maxi Code를 인쇄합니다.

* Syntax
public void printMaxiCode(String data, int alignment, int mode, boolean getResponse)

* Parameters

- data: 인쇄할 바코드 데이터


- alignment: 바코드 정렬
Code Value Description
ALIGNMENT_LEFT 0 왼쪽 정렬
ALIGNMENT_CENTER 1 가운데 정렬
ALIGNMENT_RIGHT 2 오른쪽 정렬
- mode: 인쇄할 Maxi Code 모드
Code Value Description
MAXI_CODE_MODE2 50 Maxi Code 모드 2
MAXI_CODE_MODE3 51 Maxi Code 모드 3
MAXI_CODE_MODE4 52 Maxi Code 모드 4
- getResponse: true일 경우, 인쇄가 완료되면 애플리케이션 핸들러로 메시지를 전
달합니다. false일 경우, 인쇄만 실행하고 애플리케이션 핸들러로 메시지를 전달
하지 않습니다.

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400

Rev. 1.07 - 63 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case MESSAGE_STATE_CHANGE:
if (msg.arg1 == STATE_CONNECTED) {
byte[] header = new byte[] {
'[', ')', '>', 0x1e, '0', '1', 0x1d, '9', '6', '1',
'2', '3', '4', '5', '6', '7', '8', '9', 0x1d, '0',
'0', '7', 0x1d, '2', '5', '0', 0x1d};
mBixolonPrinter.printMaxiCode(new String(header) +
“www.bixolon.com”, ALIGNMENT_LEFT, MAXI_CODE_MODE2, true);

}
return true;

case MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
return true;
}
return true;
}
};
}

Rev. 1.07 - 64 -
POS 프린터

7-4-14 printPdf

PDF 파일을 인쇄합니다.

* Syntax
public void printPdf (
String path, int pagenum, int level, boolean dither, boolean compress,
boolean getResponse)

* Parameter
- path: 인쇄할 PDF 파일의 절대 경로
- pagenum: 인쇄할 PDF 파일의 페이지 번호
- level: 인쇄할 PDF 파일의 밝기 (13 ~ 88)
- dither: 디더링 처리 여부
- compress: 데이터 전송 시 압축 여부
- getResponse: true일 경우, 인쇄가 완료되면 애플리케이션 핸들러로 메시지를 전
달합니다. false일 경우, 인쇄만 실행하고 애플리케이션 핸들러로 메시지를 전달
하지 않습니다.

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 65 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.printPdf(“Environment.
getExternalStorageDirectory().getAbsolutePath() + "/bixolon.pdf"”,
1, 50, true, true, true);
}
break;

case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 66 -
POS 프린터

7-4-15 printPdf417

PDF417을 인쇄합니다.

* Syntax
public void printPdf417(
String data, int alignment, int width, int height, boolean getResponse)

* Parameter
- data: 인쇄할 바코드 데이터
- alignment: 바코드 정렬
Code Value Description
ALIGNMENT_LEFT 0 왼쪽 정렬
ALIGNMENT_CENTER 1 가운데 정렬
ALIGNMENT_RIGHT 2 오른쪽 정렬
- width: 인쇄할 바코드 너비 (2 ~ 3)
- height: 인쇄할 바코드 높이 (2 ~ 8)
- getResponse: true일 경우, 인쇄가 완료되면 애플리케이션 핸들러로 메시지를 전
달합니다. false일 경우, 인쇄만 실행하고 애플리케이션 핸들러로 메시지를 전달
하지 않습니다.

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- STP-103II

Rev. 1.07 - 67 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.printPdf417(“www.bixolon.com”,
BixolonPrinter.ALIGNMENT_LEFT, 3, 8, true);
}
break;

case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 68 -
POS 프린터

7-4-16 printQrCode

QR Code를 인쇄합니다.

* Syntax
public void printQrCode(
String data, int alignment, int model, int size, boolean getResponse)

* Parameter
- data: 인쇄할 바코드 데이터
- alignment: 바코드 정렬
Code Value Description
ALIGNMENT_LEFT 0 왼쪽 정렬
ALIGNMENT_CENTER 1 가운데 정렬
ALIGNMENT_RIGHT 2 오른쪽 정렬
- model: 인쇄할 QR Code 모델
Code Value Description
QR_CODE_MODEL1 48 QR Code 모델 1
QR_CODE_MODEL1 49 QR Code 모델 2
- size: 인쇄할 바코드 크기 (1 ~ 8)
- getResponse: true일 경우, 인쇄가 완료되면 애플리케이션 핸들러로 메시지를 전
달합니다. false일 경우, 인쇄만 실행하고 애플리케이션 핸들러로 메시지를 전달
하지 않습니다.

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 69 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.printQrCode(“www.bixolon.com”,
BixolonPrinter.ALIGNMENT_LEFT,
BixolonPrinter.QR_CODE_MODEL2, 8, true);
}
break;

case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 70 -
POS 프린터

7-4-17 printQrCode

QR Code를 인쇄합니다.

* Syntax
public void printQrCode(
String data, int alignment, int model, int size, int errorCorrectionLevel,
boolean getResponse)

* Parameter
- data: 인쇄할 바코드 데이터
- alignment: 바코드 정렬
Code Value Description
ALIGNMENT_LEFT 0 왼쪽 정렬
ALIGNMENT_CENTER 1 가운데 정렬
ALIGNMENT_RIGHT 2 오른쪽 정렬
- model: 인쇄할 QR Code 모델
Code Value Description
QR_CODE_MODEL1 48 QR Code 모델 1
QR_CODE_MODEL1 49 QR Code 모델 2
- size: 인쇄할 바코드 크기 (1 ~ 8)
- errorCorrectionLevel: 인쇄할 QR Code의 error correction level
Code Value Description
QR_CODE_ERROR_CORRECTION_LEVEL_L 48 Error correction level L
QR_CODE_ERROR_CORRECTION_LEVEL_M 49 Error correction level M
QR_CODE_ERROR_CORRECTION_LEVEL_Q 50 Error correction level Q
QR_CODE_ERROR_CORRECTION_LEVEL_H 51 Error correction level H
- getResponse: true일 경우, 인쇄가 완료되면 애플리케이션 핸들러로 메시지를 전
달합니다. false일 경우, 인쇄만 실행하고 애플리케이션 핸들러로 메시지를 전달
하지 않습니다.

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 71 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.printQrCode(“www.bixolon.com”,
BixolonPrinter.ALIGNMENT_LEFT,
BixolonPrinter.QR_CODE_MODEL2, 8,
BixolonPrinter.QR_CODE_ERROR_CORRECTION_LEVEL_L
true);
}
break;

case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 72 -
POS 프린터

7-4-18 printSelfTest

Self test 페이지를 인쇄합니다. 프린터 설정과 현재 설정된 코드 페이지가 인쇄됩니다.

* Syntax
public void printSelfTest(boolean getResponse)

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- SPP-100II
- STP-103II
- SRP-275II

Rev. 1.07 - 73 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.printSelfTest(true);
}
break;

case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 74 -
POS 프린터

7-4-19 printText

문자열을 인쇄합니다.

* Syntax
public void printText(String text, int alignment, int attribute, int size, boolean getResponse)

* Parameters
- text: 인쇄할 문자열
- alignment: 문자열 정렬
Code Value Description
ALIGNMENT_LEFT 0 왼쪽 정렬
ALIGNMENT_CENTER 1 가운데 정렬
ALIGNMENT_RIGHT 2 오른쪽 정렬
- attribute: 인쇄할 문자열의 속성. 복수 설정을 하는 경우 각 값을 OR 연산해서
설정합니다.
Code Value Description
TEXT_ATTRIBUTE_FONT_A 0 폰트 타입 A (12X24)
TEXT_ATTRIBUTE_FONT_B 1 폰트 타입 B (9X17)
TEXT_ATTRIBUTE_FONT_C 2 폰트 타입 C (9X24)
TEXT_ATTRIBUTE_UNDERLINE1 4 두께 1dot 밑줄
TEXT_ATTRIBUTE_UNDERLINE2 8 두께 2dot 밑줄
TEXT_ATTRIBUTE_EMPHASIZED 16 굵게
TEXT_ATTRIBUTE_REVERSE 32 음영
- size: 인쇄할 문자열의 크기. 가로 크기와 세로 크기를 OR 연산해서 설정합니다.
Code Value Description
TEXT_SIZE_HORIZONTAL1 0 가로크기 1배 확대
TEXT_SIZE_HORIZONTAL2 16 가로크기 2배 확대
TEXT_SIZE_HORIZONTAL3 32 가로크기 3배 확대
TEXT_SIZE_HORIZONTAL4 48 가로크기 4배 확대
TEXT_SIZE_HORIZONTAL5 64 가로크기 5배 확대
TEXT_SIZE_HORIZONTAL6 80 가로크기 6배 확대
TEXT_SIZE_HORIZONTAL7 96 가로크기 7배 확대
TEXT_SIZE_HORIZONTAL8 112 가로크기 8배 확대
TEXT_SIZE_VERTICAL1 0 세로크기 1배 확대
TEXT_SIZE_VERTICAL2 1 세로크기 2배 확대
TEXT_SIZE_VERTICAL3 2 세로크기 3배 확대
TEXT_SIZE_VERTICAL4 3 세로크기 4배 확대
TEXT_SIZE_VERTICAL5 4 세로크기 5배 확대
TEXT_SIZE_VERTICAL6 5 세로크기 6배 확대
TEXT_SIZE_VERTICAL7 6 세로크기 7배 확대
TEXT_SIZE_VERTICAL8 7 세로크기 8배 확대
- getResponse: true일 경우, 인쇄가 완료되면 애플리케이션 핸들러로 메시지를 전
달합니다. false일 경우, 인쇄만 실행하고 애플리케이션 핸들러로 메시지를 전달
하지 않습니다.

Rev. 1.07 - 75 -
POS 프린터

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.printText(“printText\n”,
BixolonPrinter.ALIGNMENT_LEFT,
BixolonPrinter.TEXT_ATTRIBUTE_FONT_A |
BixolonPrinter.TEXT_ATTRIBUTE_UNDERLINE1,
BixolonPrinter.TEXT_SIZE_HORIZONTAL1 |
BixolonPrinter.TEXT_SIZE_VERTICAL1, true);
}
break;

case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 76 -
POS 프린터

7-5 프린터 응답 수신

7-5-1 automateStatusBack

프린터의 자동 상태 확인을 활성화 하거나 비활성화 합니다. 활성화 하는 경우, 프린터


의 상태가 변경될 때마다 MESSAGE_READ 메시지(arg1:
PROCESS_AUTO_STATUS_BACK)를 애플리케이션 핸들러에 전달합니다. 프린터에 에
러가 발생한 경우 메시지의 arg2에는 아래 값이 포함되어 있습니다.
Code Value Description
AUTO_STATUS_COVER_OPEN 32 프린터의 커버가 열린 상태
AUTO_STATUS_NO_PAPER 12 프린터에 용지가 없는 상태

* Syntax
public void automateStatusBack(boolean isEnable)

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II
- SRP-275II

Rev. 1.07 - 77 -
POS 프린터

* Example
public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect();

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.automateStatusBack(false);
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.automateStatusBack(true);
}
break;

case BixolonPrinter.MESSAGE_READ:
StringBuffer buffer = new StringBuffer(0);
if (msg.arg1 == BixolonPrinter.PROCESS_AUTO_STATUS_BACK) {
if ((msg.arg2 & BixolonPrinter.AUTO_STATUS_COVER_OPEN) ==
BixolonPrinter.AUTO_STATUS_COVER_OPEN) {
buffer.append("Cover is open.\n");
}
if ((msg.arg2 & BixolonPrinter.AUTO_STATUS_NO_PAPER) ==
BixolonPrinter.AUTO_STATUS_NO_PAPER) {
buffer.append("Paper end sensor: no paper present.\n");
}

if (buffer.capacity() > 0) {
Toast.makeText(getApplicationContext(), buffer.toString(),
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "No error.",
Toast.LENGTH_SHORT).show();
}
break;
}
return true;
}
};
}

Rev. 1.07 - 78 -
POS 프린터

7-5-2 getBatteryStatus

모바일 프린터의 배터리 상태를 확인합니다. 배터리 상태를 확인하면


MESSAGE_READ 메시지(arg1: PROCESS_GET_BATTERY_STATUS)를 애플리케이션
핸들러에 전달합니다. 메시지의 arg2는 아래 배터리 상태를 포함합니다.
Code Value Description
STATUS_BATTERY_FULL 48 배터리가 full인 상태
STATUS_BATTERY_HIGH 49 배터리가 high인 상태
STATUS_BATTERY_MIDDLE 50 배터리가 middle인 상태
STATUS_BATTERY_LOW 51 배터리가 low인 상태

* Syntax
public void getBatteryStatus()

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400

Rev. 1.07 - 79 -
POS 프린터

* Example
public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.getBatteryStatus();
}
break;

case BixolonPrinter.MESSAGE_READ:
if (msg.arg1 == BixolonPrinter.PROCESS_GET_BATTERY_STATUS) {
switch (msg.arg2) {
case BixolonPrinter.STATUS_BATTERY_FULL:
Toast.makeText(getApplicationContext(), “Battery is full”,
Toast.LENGTH_SHORT).show();
break;

case BixolonPrinter.STATUS_BATTERY_HIGH:
Toast.makeText(getApplicationContext(), “Battery is high”,
Toast.LENGTH_SHORT).show();
break;

case BixolonPrinter.STATUS_BATTERY_MIDDLE:
Toast.makeText(getApplicationContext(), “Battery is middle”,
Toast.LENGTH_SHORT).show();
break;

case BixolonPrinter.STATUS_BATTERY_LOW:
Toast.makeText(getApplicationContext(), “Battery is low”,
Toast.LENGTH_SHORT).show();
break;

}
}
break;
}
return true;
}
};
}

Rev. 1.07 - 80 -
POS 프린터

7-5-3 getPrinterId

프린터의 정보를 확인합니다. 정보를 확인하면 MESSAG_READ 메시지


(arg1: PROCESS_GET_PRINTER_ID)를 애플리케이션 핸들러에 전달합니다.

* Syntax
public void getPrinterId(int idType)

* Parameters
- idType: 확인할 프린터의 정보
Code Value Description
PRINTER_ID_FIRMWARE_VERSION 65 펌웨어 버전 확인
PRINTER_ID_MANUFACTURER 66 제조사 확인 (BIXOLON)
PRINTER_ID_PRINTER_MODEL 67 프린터 모델명 확인
PRINTER_ID_CODE_PAGE 69 현재 설정된 코드 페이지 확인

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- SPP-100II
- STP-103II
- SRP-275II

Rev. 1.07 - 81 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.getPrinterId(
BixolonPrinter.PRINTER_ID_FIRMWARE_VERSION);
}
break;

case BixolonPrinter.MESSAGE_READ:
if (msg.arg1 == BixolonPrinter.PROCESS_GET_PRINTER_ID) {
Bundle data = msg.getData();
Toast.makeText(getApplicationContext(),
data.getString(BixolonPrinter.KEY_STRING_PRINTER_ID),
Toast.LENGTH_SHORT).show();
}
break;
}
return true;
}
};
}

Rev. 1.07 - 82 -
POS 프린터

7-5-4 getReceiveBufferDataSize

프린터의 수신 버퍼에 저장된 데이터의 크기를 확인합니다. 결과를 확인하면


MESSAGE_READ 메시지(arg1: PROCESS_GET_RECEIVE_BUFFER_DATA_SIZE)를
애플리케이션 핸들러에 전달합니다.

* Syntax
public void getReceiveBufferDataSize()

* 지원 프린터
- SPP-100II

Rev. 1.07 - 83 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect();

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.getReceiveBufferDataSize();
}
break;

case BixolonPrinter.MESSAGE_READ:
if (msg.arg1 ==
BixolonPrinter.PROCESS_GET_RECEIVE_BUFFER_DATA_SIZE) {
int receiveBufferDataSize = msg.arg2;
// TODO: 수신 버퍼 사이즈에 따라 처리
}
break;
}
return true;
}
};
}

Rev. 1.07 - 84 -
POS 프린터

7-5-5 getStatus

프린터의 상태를 확인합니다. 상태를 확인하면 MESSAGE_READ 메시지


(arg1: PROCESS_GET_STATUS)를 애플리케이션 핸들러에 전달합니다.
아래 값이 arg2에 포함됩니다.
Code Value Description
STATUS_NORMAL 0 정상 상태
STATUS_COEVER_OPEN 4 프린터의 커버가 열린 상태
STATUS_PAPER_NEAR_END 12 프린터의 용지가 near end인 상태
STATUS_PAPER_NOT_PRESENT 96 프린터에 용지가 없는 상태

* Syntax
public void getStatus()

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II
- SRP-275II

Rev. 1.07 - 85 -
POS 프린터

* Example
public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect();

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.getStatus();
}
break;

case BixolonPrinter.MESSAGE_READ:
if (msg.arg1 == BixolonPrinter.PROCESS_GET_STATUS) {
if (msg.arg2 == BixolonPrinter.STATUS_NORMAL) {
Toast.makeText(getApplicationContext(), "No error",
Toast.LENGTH_SHORT).show();
} else {
StringBuffer buffer = new StringBuffer();
if ((msg.arg2 & BixolonPrinter.STATUS_COVER_OPEN) ==
BixolonPrinter.STATUS_COVER_OPEN) {
buffer.append("Cover is open.\n");
}
if ((msg.arg2 & BixolonPrinter.STATUS_PAPER_NOT_PRESENT) ==
BixolonPrinter.STATUS_PAPER_NOT_PRESENT) {
buffer.append("Paper end sensor: paper not present.\n");
}

Toast.makeText(getApplicationContext(), buffer.toString(),
Toast.LENGTH_SHORT).show();
}
break;
}
return true;
}
};
}

Rev. 1.07 - 86 -
POS 프린터

7-6 NV 이미지

7-6-1 defineNvImage

프린터의 비휘발성 메모리 영역에 이미지를 저장합니다. 이미지 저장이 완료되면


MESSAGE_WRITE 메시지(arg1: PROCESS_DEFINE_NV_IMAGE)를 애플리케이션
핸들러에 전달합니다.

* Syntax
public void defineNvImage(Bitmap bitmap, int width, int level, int keyCode)

* Paramters
- bitmap: 저장할 Bitmap instance
- width: 저장할 이미지의 너비
Code Value Description
BITMAP_WIDTH_FULL -1 프린터 최대 너비만큼 늘리거나 줄여서 저장
이미지 크기를 변경하지 않고 인쇄
BITMAP_WIDTH_NONE 0 이미지 너비가 프린터 최대 너비보다 큰 경우에는
프린터 최대 너비만큼 줄여서 저장
정수 정수 직접 설정
- level: 저장할 이미지의 밝기 (13 ~ 88)
- keyCode: 이미지를 저장할 메모리 영역의 주소. (0 ~ 255)

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 87 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
BitmapDrawable drawable =
(BitmapDrawable) getResources().getDrawable(R.drawable.logo);
Bitmap bitmap = drawable.getBitmap();
mBixolonPrinter.defineNvImage(bitmap,
BixolonPrinter.BITMAP_WIDTH_FULL, 50, 0);
}
break;

case BixolonPrinter.MESSAGE_WRITE:
if (msg.arg1 == BixolonPrinter.PROCESS_DEFINE_NV_IMAGE) {
mBixolonPrinter.disconnect();
}
break;
}
return true;
}
};
}

Rev. 1.07 - 88 -
POS 프린터

7-6-2 defineNvImage

프린터의 비휘발성 메모리 영역에 이미지를 저장합니다. 이미지 저장이 완료되면


MESSAGE_WRITE 메시지(arg1: PROCESS_DEFINE_NV_IMAGE)를 애플리케이션
핸들러에 전달합니다.

* Syntax
public void defineNvImage(String pathName, int width, int level, int keyCode)

* Paramters
- pathName: 프린터에 저장할 이미지 파일의 절대 경로
- width: 저장할 이미지의 너비
Code Value Description
BITMAP_WIDTH_FULL -1 프린터 최대 너비만큼 늘리거나 줄여서 저장
이미지 크기를 변경하지 않고 인쇄
BITMAP_WIDTH_NONE 0 이미지 너비가 프린터 최대 너비보다 큰 경우에는
프린터 최대 너비만큼 줄여서 저장
정수 정수 직접 설정
- level: 저장할 이미지의 밝기 (13 ~ 88)
- keyCode: 이미지를 저장할 메모리 영역의 주소. (0 ~ 255)

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 89 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
String pathName =
Environment.getExternalStorageDirectory().getAbsolutePath() +
“/logo.png”;
mBixolonPrinter.defineNvImage(pathName,
BixolonPrinter.BITMAP_WIDTH_FULL, 50, 0);
}
break;

case MESSAGE_WRITE:
if (msg.arg1 == BixolonPrinter.PROCESS_DEFINE_NV_IMAGE) {
mBixolonPrinter.disconnect();
}
break;
}
return true;
}
};
}

Rev. 1.07 - 90 -
POS 프린터

7-6-3 getDefinedNvImageKeyCodes

프린터의 비휘발성 메모리 영역에 저장된 이미지의 주소를 확인합니다. 주소를


확인하면 MESSAGE_READ 메시지(arg1: PROCESS_GET_NV_IMAGE_KEY_CODES)
를 애플리케이션 핸들러에 전달합니다. 저장된 이미지가 있는 경우 이미지의 주소
목록을 int 배열 타입으로 전달하고, 저장된 이미지가 없는 경우 null을 전달합니다.

* Syntax
public void getDefinedNvImageKeyCodes()

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 91 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == STATE_CONNECTED) {
mBixolonPrinter.getDefinedNvImageKeyCodes();
}
break;

case BixolonPrinter.MESSAGE_READ:
if (msg.arg1 ==
BixolonPrinter.PROCESS_GET_NV_IMAGE_KEY_CODES) {
Bundle data = msg.getData();
int[] keyCodes =
data.getintArray(BixolonPrinter.NV_IMAGE_KEY_CODES);
if (keyCodes != null) {
// TODO: 이미지 주소 처리
}
}
break;
}
return true;
}
};
}

Rev. 1.07 - 92 -
POS 프린터

7-6-4 printNvImage

프린터의 비휘발성 메모리 영역에 저장된 이미지를 인쇄합니다.

* Syntax
public void printNvImage(int keyCode, boolean getResponse)

* Parameters
- keyCode: 인쇄할 NV 이미지의 주소 코드
- getResponse: true일 경우, 인쇄가 완료되면 애플리케이션 핸들러로
MESSAGE_PRINT_COMPLETE 메시지를 전달합니다. false일 경우,
인쇄만 실행하고 애플리케이션 핸들러로 메시지를 전달하지 않습니다.

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 93 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.getDefinedNvImageKeyCodes();
}
break;

case BixolonPrinter.MESSAGE_READ:
if (msg.arg1 ==
BixolonPrinter.PROCESS_GET_NV_IMAGE_KEY_CODES) {
Bundle data = msg.getData();
int[] keyCodes =
data.getintArray(BixolonPrinter.NV_IMAGE_KEY_CODES);
if (keyCodes != null) {
for (int i = 0; i < keyCodes.length; i++) {
mBixolonPrinter.printNvImage(keyCodes[i], false);
}
}
}
break;
}
return true;
}
};
}

Rev. 1.07 - 94 -
POS 프린터

7-6-5 removeAllNvImage

프린터의 비휘발성 메모리 영역에 저장된 이미지를 모두 삭제합니다.

* Syntax
public void printAllNvImage()

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 95 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.removeAllNvImage();
break;
}
break;
}
return true;
}
};
}

Rev. 1.07 - 96 -
POS 프린터

7-6-6 removeNvImage

프린터의 비휘발성 메모리 영역에 저장된 이미지를 삭제합니다.

* Syntax
public void removeNvImage(int keyCode)

* Parameters
- keyCode: 삭제할 NV 이미지의 주소 코드

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 97 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == STATE_CONNECTED) {
mBixolonPrinter.getDefinedNvImageKeyCodes()
}
break;

case BixolonPrinter.MESSAGE_READ:
if (msg.arg1 ==
BixolonPrinter.PROCESS_GET_NV_IMAGE_KEY_CODES) {
Bundle data = msg.getData();
int[] keyCodes =
data.getintArray(BixolonPrinter.NV_IMAGE_KEY_CODES);
if (keyCodes != null) {
mBixolonPrinter.removeNvImage(keyCodes[0]);
}
}
break;
}
return true;
}
};
}

Rev. 1.07 - 98 -
POS 프린터

7-7 페이지 모드

7-7-1 printBox

페이지 모드에서 box를 인쇄합니다.

* Syntax
public void printBox(
int startX, int startY, int stopX, int stopY, int thickness, boolean getResponse)

* Parameter
- startX: Box의 시작 지점 X 좌표
- startY: Box의 시작 지점 Y 좌표
- stopX: Box의 끝 지점 X 좌표
- stopY: Box의 끝 지점 Y 좌표
- thickness: Box의 두께 (1~-16)
- getResponse: true일 경우, 인쇄가 완료되면 애플리케이션 핸들러로 메시지를 전
달합니다. false일 경우, 인쇄만 실행하고 애플리케이션 핸들러로 메시지를 전달
하지 않습니다.

* 지원 프린터
- SPP-R300

Rev. 1.07 - 99 -
POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.setPageMode();
mBixoonPrinter.setPrintArea(0, 0, 576, 576);
mBixolonPrinter.printBox(10, 10, 100, 100);
mBixolonPrinter.formFeed(true);
}
break;

case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 100 -


POS 프린터

7-7-2 printLine

페이지 모드에서 line을 인쇄합니다.

* Syntax
public void printLine(
int startX, int startY, int stopX, int stopY, int thickness, boolean getResponse)

* Parameter
- startX: Line의 시작 지점 X 좌표
- startY: Line의 시작 지점 Y 좌표
- stopX: Line의 끝 지점 X 좌표
- stopY: Line의 끝 지점 Y 좌표
- thickness: Line의 두께 (1~-16)
- getResponse: true일 경우, 인쇄가 완료되면 애플리케이션 핸들러로 메시지를 전
달합니다. false일 경우, 인쇄만 실행하고 애플리케이션 핸들러로 메시지를 전달
하지 않습니다.

* 지원 프린터
- SPP-R300

Rev. 1.07 - 101 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.setPageMode();
mBixoonPrinter.setPrintArea(0, 0, 576, 576);
mBixolonPrinter.printLine(10, 10, 100, 100);
mBixolonPrinter.formFeed(true);
}
break;

case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 102 -


POS 프린터

7-7-3 setAbsolutePrintPosition

페이지 모드에서 가로 좌표를 설정합니다.

* Syntax
public void setAbsolutePrintPosition(int position)

* Parameters
- position: 설정할 가로 좌표

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312

7-7-4 setAbsoluteVerticalPrintPosition

페이지 모드에서 세로 좌표를 설정합니다.

* Syntax
public void setAbsoluteVerticalPrintPosition(int position)

* Parameters
- position: 설정할 가로 좌표

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312

7-7-5 setPageMode

페이지 모드로 전환합니다.

* Syntax
public void setPageMode()

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312

Rev. 1.07 - 103 -


POS 프린터

7-7-6 setPrintArea

페이지 모드에서 인쇄 영역을 설정합니다.

* Syntax
public void setPrintArea(int x, int y, int width, int height)

* Parametes
- x: 인쇄 영역의 가로 시작 지점
- y: 인쇄 영역의 세로 시작 지점
- width: 인쇄 영역의 너비
- height: 인쇄 영역의 높이

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312

7-7-7 setPrintDirection

페이지 모드에서 인쇄 방향을 설정합니다.

* Syntax
public void setPrintDirection(int direction)

* Parameter
- direction: 설정할 인쇄 방향. 사용 가능한 값은 아래 표를 참고하시기 바랍니다.
Code Value Description
DIRECTION_0_DEGREE_ROTATION 0 회전하지 않고 인쇄
DIRECTION_90_DEGREE_ROTATION 1 오른쪽으로 90도 회전해서 인쇄
DIRECTION_180_DEGREE_ROTATION 2 오른쪽으로 180도 회전해서 인쇄
DIRECTION_270_DEGREE_ROTATION 3 오른쪽으로 270도 회전해서 인쇄

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312

7-7-8 setStandardMode

페이지 모드를 종료하고 스탠다드 모드로 전환합니다.

* Syntax
public void setStandardMode()

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312

Rev. 1.07 - 104 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case MESSAGE_STATE_CHANGE:
if (msg.arg1 == STATE_CONNECTED) {
mBixolonPrinter.setPageMode();
mBixolonPrinter.setPrintDirection(
BixolonPrinter.DIRECTION_180_DEGREE_ROTATION);
mBixolonPrinter.setPrintArea(0, 0, 384, 840);
mBixolonPrinter.setAbsoluteVerticalPrintPosition(100);
mBixolonPrinter.printBitmap(bitmap,
BixolonPrinter.ALIGNMENT_CENTER,
BixolonPrinter.BITMAP_WIDTH_FULL, 88, false);
mBixolonPrinter.formFeed(true);
mBixolonPriner.setStandardMode();
}
break;

case MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 105 -


POS 프린터

7-8 라벨 모드

7-8-1 executeAutomaticCalibration

라벨모드에서 자동 calibration을 실행합니다.

* Syntax
public void executeAutomaticCalibration()

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400

Rev. 1.07 - 106 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.setLabelMode();
mBixolonPrinter.executeAutomaticCalibration();
}
break;
}
return true;
}
};
}

Rev. 1.07 - 107 -


POS 프린터

7-8-2 setLabelMode

라벨 모드로 전환합니다.

* Syntax
public void setLabelMode()

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400

Rev. 1.07 - 108 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.setLabelMode();
mBixolonPrinter.executeAutomaticCalibration();
}
break;
}
return true;
}
};
}

Rev. 1.07 - 109 -


POS 프린터

7-8-3 setReceiptMode

영수증 모드로 전환합니다.

* Syntax
public void setReceiptMode()

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400

Rev. 1.07 - 110 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.setReceiptMode();
}
break;
}
return true;
}
};
}

Rev. 1.07 - 111 -


POS 프린터

7-9 MSR

7-9-1 cancelMsrReaderMode

트랙1/2/3 커맨드 읽기 모드인 경우 reader mode를 종료합니다. Reader mode가 종료되


면 프린터가 카드를 읽을 수 없습니다.

* Syntax
public void cancelMsrReaderMode()

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400

Rev. 1.07 - 112 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.cancelMsrReaderMode();
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.getMsrMode();
}
break;

case BixolonPrinter.MESSAGE_READ:
if (msg.arg1 == BixolonPrinter.PROCESS_GET_MSR_MODE) {
if (msg.arg2 == BixolonPrinter.MSR_MODE_TRACK123_COMMAND) {
mBixolonPrinter.setMsrReaderMode();
}
}
break;
}
return true;
}
};
}

Rev. 1.07 - 113 -


POS 프린터

7-9-2 getMsrMode

현재 설정된 MSR 설정값을 확인합니다. 설정값을 확인하면 MESSAGE_READ 메시지


(arg1: PROCESS_GET_MSR_MODE)를 애플리케이션 핸들러에 전달합니다. 메시지의
arg2에 아래 값이 포함됩니다.
Code Value Description
MSR_MODE_TRACK123_COMMAND 65 트랙1/2/3 커맨드 읽기 모드
MSR_MODE_TRACK1_AUTO 66 트랙1 자동 트리거 읽기 모드
MSR_MODE_TRACK2_AUTO 67 트랙2 자동 트리거 읽기 모드
MSR_MODE_TRACK3_AUTO 68 트랙3 자동 트리거 읽기 모드
MSR_MODE_TRACK12_AUTO 69 트랙1/2 자동 트리거 읽기 모드
MSR_MODE_TRACK23_AUTO 70 트랙2/3 자동 트리거 읽기 모드
MSR_MODE_TRACK123_AUTO 71 트랙1/2/3 자동 트리거 읽기 모드
MSR_MODE_NOT_USED 72 MSR 사용 안함

* Syntax
public void getMsrMode()

* Paramters
- getResponse: true일 경우, 용지 절단이 완료되면 애플리케이션 핸들러로
MESSAGE_PRINT_COMPLETE 메시지를 전달합니다. false일 경우,
용지만 절단하고 애플리케이션 핸들러로 메시지를 전달하지 않습니다.

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400

Rev. 1.07 - 114 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.getMsrMode();
}
break;

case BixolonPrinter.MESSAGE_READ:
if (msg.arg1 == BixolonPrinter.PROCESS_GET_MSR_MODE) {
// TODO: MSR 모드에 따른 처리
}
break;
}
return true;
}
};
}

Rev. 1.07 - 115 -


POS 프린터

7-9-3 setMsrReaderMode

트랙1/2/3 커맨드 읽기 모드인 경우 프린터가 카드를 읽을 수 있도록 reader mode로


전환합니다.

* Syntax
public void setMsrReaderMode()

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400

Rev. 1.07 - 116 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.getMsrMode();
}
break;

case BixolonPrinter.MESSAGE_READ:
if (msg.arg1 == BixolonPrinter.PROCESS_GET_MSR_MODE) {
if (msg.arg2 == BixolonPrinter.MSR_MODE_TRACK123_COMMAND) {
mBixolonPrinter.setMsrReaderMode();
}
}
break;
}
return true;
}
};
}

Rev. 1.07 - 117 -


POS 프린터

7-10 설정

7-10-1 getBsCodePage

현재 설정된 코드 페이지를 확인합니다. 코드 페이지를 확인하면 MESSAGE_READ


메시지(arg1: PROCESS_GET_BS_CODE_PAGE)를 애플리케이션 핸들러에 전달합니다.
아래 코드 페이지가 메시지의 arg2에 포함됩니다.
Code Value Description
CODE_PAGE_437_USA 0 Page 0 437(USA standard Europe)
CODE_PAGE_KATAKANA 1 Page 1 Katakana
CODE_PAGE_850_MULTILINGUAL 2 Page 2 850 (Multilingual)
CODE_PAGE_860_PORTUGUESE 3 Page 3 860 (Portuguese)
CODE_PAGE_863_CANADIAN_FRENCH 4 Page 4 863 (Canadian-French)
CODE_PAGE_865_NORDIC 5 Page 5 865 (Nordic)
CODE_PAGE_1252_LATIN1 16 Page 16 1252 (Latin I)
CODE_PAGE_866_CYRILLIC2 17 Page 17 866 (Cyrillic #2)
CODE_PAGE_852_LATIN2 18 Page 18 852 (Latin 2)
CODE_PAGE_858_EURO 19 Page 19 858 (Euro)
CODE_PAGE_862_HEBREW_DOS_CODE 21 Page 21 862 (Hebrew DOS code)
CODE_PAGE_864_ARABIC 22 Page 22 864 (Arabic)
CODE_PAGE_THAI42 23 Page 23 Thai42
CODE_PAGE_1253_GREEK 24 Page 24 1253 (Greek)
CODE_PAGE_1254_TURKISH 25 Page 25 1254 (Turkish)
CODE_PAGE_1257_BALTIC 26 Page 26 1257 (Baltic)
CODE_PAGE_FARSI 27 Page 27 Farsi
CODE_PAGE_1251_CYRILLIC 28 Page 28 1251 (Cyrillic)
CODE_PAGE_737_GREEK 29 Page 29 737 (Greek)
CODE_PAGE_775_BALTIC 30 Page 30 775 (Baltic)
CODE_PAGE_THAI14 31 Page 31 Thai14
CODE_PAGE_1255_HEBREW_NEW_CODE 33 Page 33 1255 (Hebrew Newcode)
CODE_PAGE_THAI11 34 Page 34 Thai11
CODE_PAGE_THAI18 35 Page 35 Thai18
CODE_PAGE_855_CYRILLIC 36 Page 36 855 (Cyrillic)
CODE_PAGE_857_TURKISH 37 Page 37 857 (Turkish)
CODE_PAGE_928_GREEK 38 Page 38 928 (Greek)
CODE_PAGE_THAI16 39 Page 39 Thai16
CODE_PAGE_1256_ARABIC 40 Page 40 1256 (ARB)
CODE_PAGE_1258_VIETNAM 41 Page 41 1258 (Vietnam)
CODE_PAGE_KHMER_CAMBODIA 42 Page 42 Khmer (Cambodia)
CODE_PAGE_1250_CZECH 43 Page 47 1250 (Czech)

* Syntax
public void getBsCodePage()

* 지원 프린터
- SRP-275II

Rev. 1.07 - 118 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(“192.168.0.100”, 9100, 5000);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.getBsCodePage();
}
break;

case BixolonPrinter.MESSAGE_READ:
if (msg.arg1 == BixolonPrinter.PROCESS_BS_CODE_PAGE) {
data = msg.getData();
Toast.makeText(getApplicationContext(),
data.getString(BixolonPrinter.KEY_STRING_CODE_PAGE),
Toast.LENGTH_SHORT).show();
}
}
break;
}
return true;
}
};
}

Rev. 1.07 - 119 -


POS 프린터

7-10-2 getPowerSavingMode

프린터의 power saving mode를 확인합니다. 설정값을 확인하면 MESSAGE_READ


메시지(arg1: PROCESS_GET_POWER_SAVING_MODE)메시지를 애플리케이션 핸들러
에 전달합니다. Power saving mode가 설정되어 있지 않은 경우에는 arg2에 0을 전달하
고, 설정되어 있는 경우에는 시간을 arg2에 밀리초로 전달합니다.

* Syntax
public void getPowerSavingMode()

* 지원 프린터
- SRP-350II / SRP-350IIK
- SRP-350plusII / SRP-352plusII
- SPP-100II

Rev. 1.07 - 120 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.getPowerSavingMode();
}
break;

case BixolonPrinter.MESSAGE_READ:
if (msg.arg1 ==
BixolonPrinter.PROCESS_GET_POWER_SAVING_MODE) {
Toast.makeText(getApplicationContext(),
Integer.toString(msg.arg2) + “sec.”,
Toast.LENGTH_SHORT).show();
}
break;
}
return true;
}
};
}

Rev. 1.07 - 121 -


POS 프린터

7-10-3 getPrintDensity

프린터의 인쇄 농도를 확인합니다. 설정값을 확인하면 MESSAGE_READ 메시지(arg1:


PROCESS_GET_PRINT_DENSITY)를 애플리케이션 핸들러에 전달합니다. 메시지의
arg2에 아래 인쇄 농도의 정도가 포함됩니다.
Code Value Description
PRINT_DENSITY_LIGHT 0 농도를 연하게 설정
PRINT_DENSITY_DEFAULT 1 기본 농도로 설정
PRINT_DENSITY_DARK 2 농도를 진하게 설정

* Syntax
public void getPrintDensity()

* 지원 프린터
- SRP-350II / SRP-350IIK
- SRP-350plusII / SRP-352plusII
- SPP-100II

Rev. 1.07 - 122 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.getPrintDensity();
}
break;

case BixolonPrinter.MESSAGE_READ:
if (msg.arg1 == BixolonPrinter.PROCESS_GET_PRINT_DENSITY) {
// TODO: 인쇄 농도에 따른 처리
}
break;
}
return true;
}
};
}

Rev. 1.07 - 123 -


POS 프린터

7-10-4 getPrintSpeed

프린터의 인쇄 속도를 확인합니다. 설정값을 확인하면 MESSAGE_READ 메시지(arg1:


PROCESS_GET_PRINT_SPEED)를 애플리케이션 핸들러에 전달합니다. 메시지의 arg2
에는 아래 인쇄 속도의 정도가 포함됩니다.
Code Value Description
PRINT_SPEED_LOW 0 느린 속도
PRINT_SPEED_MEDIUM 1 중간 속도
PRINT_SPEED_HIGH 2 빠른 속도

* Syntax
public void getPrintSpeed()

* 지원 프린터
- SRP-350II / SRP-350IIK
- SRP-350plusII / SRP-352plusII
- SPP-100II

Rev. 1.07 - 124 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.getPrintSpeed();
}
break;

case BixolonPrinter.MESSAGE_READ:
if (msg.arg1 == BixolonPrinter.PROCESS_GET_PRINT_SPEED) {
// TODO: 인쇄 속도에 따른 처리
}
break;
}
return true;
}
};
}

Rev. 1.07 - 125 -


POS 프린터

7-10-5 setBsCodePage

코드 페이지를 설정합니다.

* Syntax
public void setBsCodePage(int codePage)

* Parameters
- codePage: 설정할 코드 페이지
Code Value Description
CODE_PAGE_437_USA 0 Page 0 437(USA standard Europe)
CODE_PAGE_KATAKANA 1 Page 1 Katakana
CODE_PAGE_850_MULTILINGUAL 2 Page 2 850 (Multilingual)
CODE_PAGE_860_PORTUGUESE 3 Page 3 860 (Portuguese)
CODE_PAGE_863_CANADIAN_FRENCH 4 Page 4 863 (Canadian-French)
CODE_PAGE_865_NORDIC 5 Page 5 865 (Nordic)
CODE_PAGE_1252_LATIN1 16 Page 16 1252 (Latin I)
CODE_PAGE_866_CYRILLIC2 17 Page 17 866 (Cyrillic #2)
CODE_PAGE_852_LATIN2 18 Page 18 852 (Latin 2)
CODE_PAGE_858_EURO 19 Page 19 858 (Euro)
CODE_PAGE_862_HEBREW_DOS_CODE 21 Page 21 862 (Hebrew DOS code)
CODE_PAGE_864_ARABIC 22 Page 22 864 (Arabic)
CODE_PAGE_THAI42 23 Page 23 Thai42
CODE_PAGE_1253_GREEK 24 Page 24 1253 (Greek)
CODE_PAGE_1254_TURKISH 25 Page 25 1254 (Turkish)
CODE_PAGE_1257_BALTIC 26 Page 26 1257 (Baltic)
CODE_PAGE_FARSI 27 Page 27 Farsi
CODE_PAGE_1251_CYRILLIC 28 Page 28 1251 (Cyrillic)
CODE_PAGE_737_GREEK 29 Page 29 737 (Greek)
CODE_PAGE_775_BALTIC 30 Page 30 775 (Baltic)
CODE_PAGE_THAI14 31 Page 31 Thai14
CODE_PAGE_1255_HEBREW_NEW_CODE 33 Page 33 1255 (Hebrew Newcode)
CODE_PAGE_THAI11 34 Page 34 Thai11
CODE_PAGE_THAI18 35 Page 35 Thai18
CODE_PAGE_855_CYRILLIC 36 Page 36 855 (Cyrillic)
CODE_PAGE_857_TURKISH 37 Page 37 857 (Turkish)
CODE_PAGE_928_GREEK 38 Page 38 928 (Greek)
CODE_PAGE_THAI16 39 Page 39 Thai16
CODE_PAGE_1256_ARABIC 40 Page 40 1256 (ARB)
CODE_PAGE_1258_VIETNAM 41 Page 41 1258 (Vietnam)
CODE_PAGE_KHMER_CAMBODIA 42 Page 42 Khmer (Cambodia)
CODE_PAGE_1250_CZECH 43 Page 47 1250 (Czech)

* 지원 프린터
- SRP-275II

Rev. 1.07 - 126 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(“192.168.0.100”, 9100, 5000);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.setBsCodePage(CODE_PAGE_437_USA);
}
break;
}
return true;
}
};
}

Rev. 1.07 - 127 -


POS 프린터

7-10-6 setDoubleByteFont

Double byte font(KS5601, BIG5, GB2312, SHIFT-JIS)를 프린터에 다운로드 합니다.


다운로드가 완료되면 MESSAGE_WRITE 메시지(arg1:
PROCESS_SET_DOUBLE_BYTE_FONT)를 애플리케이션 핸들러에 전달합니다.
이 메시지를 수신하면 프린터를 재부팅해야 다운로드한 폰트가 적용됩니다.

* Syntax
public void setDoubleByteFont(int codePage)

* Parameters
- codePage: 설정할 코드 페이지
Code Value Description
DOUBLE_BYTE_FONT_KS5601 124 한국어 (KS5601)
DOUBLE_BYTE_FONT_BIG5 125 중국어 (BIG5)
DOUBLE_BYTE_FONT_GB2312 126 중국어 (GB2312)
DOUBLE_BYTE_FONT_SHIFT_JIS 127 일본어 (SHIFT-JIS)

* 지원 프린터
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 128 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect();

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.setDoubleByteFont(
BixolonPrinter.DOUBLE_BYTE_FONT_KS5601);
}
break;

case BixolonPrinter.MESSAGE_WRITE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 129 -


POS 프린터

7-10-7 setPowerSavingMode

프린터의 power saving mode를 설정합니다.

* Syntax
public void setPowerSavingMode(boolean enabled, int time)

* Paramter
- enabled: true일 경우 power saving mode를 활성화 합니다. false일 경우
power saving mode를 비활성화 합니다.
- time: Power saving mode를 활성화 하는 경우 시간을 밀리초로 설정합니다.

* 지원 프린터
- SRP-350II / SRP-350IIK
- SRP-350plusII / SRP-352plusII
- SPP-100II

Rev. 1.07 - 130 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.setPowerSavingMode(true, 10000);
}
break;
}
return true;
}
};
}

Rev. 1.07 - 131 -


POS 프린터

7-10-8 setPrintDensity

프린터의 인쇄 농도를 설정합니다.

* Syntax
public void setPrintDensity(int density)

* Parameters
- density: 설정할 인쇄 농도
Code Value Description
PRINT_DENSITY_LIGHT 0 농도를 연하게 설정
PRINT_DENSITY_DEFAULT 1 기본 농도로 설정
PRINT_DENSITY_DARK 2 농도를 진하게 설정

* 지원 프린터
- SRP-350II / SRP-350IIK
- SRP-350plusII / SRP-352plusII
- SPP-100II

Rev. 1.07 - 132 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.setPrintDensity(
BixolonPrinter.PRINT_DENSITY_DEFAULT);
}
break;
}
return true;
}
};
}

Rev. 1.07 - 133 -


POS 프린터

7-10-9 setPrintSpeed

프린터의 인쇄 속도를 설정합니다.

* Syntax
public void setPrintSpeed(int speed)

* Parameters
- speed: 설정할 인쇄 속도
Code Value Description
PRINT_SPEED_LOW 0 느린 속도
PRINT_SPEED_MEDIUM 1 중간 속도
PRINT_SPEED_HIGH 2 빠른 속도

* 지원 프린터
- SRP-350II / SRP-350IIK
- SRP-350plusII / SRP-352plusII
- SPP-100II

Rev. 1.07 - 134 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.setPrintSpeed(BixolonPrinter.PRINT_SPEED_HIGH);
}
break;
}
return true;
}
};
}

Rev. 1.07 - 135 -


POS 프린터

7-10-10 setSingleByteFont

Single byte font를 설정합니다.

* Syntax
public void setSingleByte(int codePage)

* Parameters
- codePage: 설정할 코드 페이지
Code Value Description
CODE_PAGE_437_USA 0 Page 0 437(USA standard Europe)
CODE_PAGE_KATAKANA 1 Page 1 Katakana
CODE_PAGE_850_MULTILINGUAL 2 Page 2 850 (Multilingual)
CODE_PAGE_860_PORTUGUESE 3 Page 3 860 (Portuguese)
CODE_PAGE_863_CANADIAN_FRENCH 4 Page 4 863 (Canadian-French)
CODE_PAGE_865_NORDIC 5 Page 5 865 (Nordic)
CODE_PAGE_1252_LATIN1 16 Page 16 1252 (Latin I)
CODE_PAGE_866_CYRILLIC2 17 Page 17 866 (Cyrillic #2)
CODE_PAGE_852_LATIN2 18 Page 18 852 (Latin 2)
CODE_PAGE_858_EURO 19 Page 19 858 (Euro)
CODE_PAGE_862_HEBREW_DOS_CODE 21 Page 21 862 (Hebrew DOS code)
CODE_PAGE_864_ARABIC 22 Page 22 864 (Arabic)
CODE_PAGE_THAI42 23 Page 23 Thai42
CODE_PAGE_1253_GREEK 24 Page 24 1253 (Greek)
CODE_PAGE_1254_TURKISH 25 Page 25 1254 (Turkish)
CODE_PAGE_1257_BALTIC 26 Page 26 1257 (Baltic)
CODE_PAGE_FARSI 27 Page 27 Farsi
CODE_PAGE_1251_CYRILLIC 28 Page 28 1251 (Cyrillic)
CODE_PAGE_737_GREEK 29 Page 29 737 (Greek)
CODE_PAGE_775_BALTIC 30 Page 30 775 (Baltic)
CODE_PAGE_THAI14 31 Page 31 Thai14
CODE_PAGE_1255_HEBREW_NEW_CODE 33 Page 33 1255 (Hebrew Newcode)
CODE_PAGE_THAI11 34 Page 34 Thai11
CODE_PAGE_THAI18 35 Page 35 Thai18
CODE_PAGE_855_CYRILLIC 36 Page 36 855 (Cyrillic)
CODE_PAGE_857_TURKISH 37 Page 37 857 (Turkish)
CODE_PAGE_928_GREEK 38 Page 38 928 (Greek)
CODE_PAGE_THAI16 39 Page 39 Thai16
CODE_PAGE_1256_ARABIC 40 Page 40 1256 (ARB)
CODE_PAGE_1258_VIETNAM 41 Page 41 1258 (Vietnam)
CODE_PAGE_KHMER_CAMBODIA 42 Page 42 Khmer (Cambodia)
CODE_PAGE_1250_CZECH 43 Page 47 1250 (Czech)

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 136 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.setSingleByteFont(
BixolonPrinter.CODE_PAGE_437_USA);
}
break;
}
return true;
}
};
}

Rev. 1.07 - 137 -


POS 프린터

7-11 기타 기능

7-11-1 cutPaper

프린터의 용지를 절단합니다.

* Syntax
public void cutPaper(boolean getResponse)

* Paramters
- getResponse: true일 경우, 용지 절단이 완료되면 애플리케이션 핸들러로
MESSAGE_PRINT_COMPLETE 메시지를 전달합니다. false일 경우,
용지만 절단하고 애플리케이션 핸들러로 메시지를 전달하지 않습니다.

* 지원 프린터
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150

Rev. 1.07 - 138 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
// TODO: getResponse 파라미터를 false로 설정하고 인쇄
mBixolonPrinter.cutPaper(true);
}
break;

case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 139 -


POS 프린터

7-11-2 cutPaper

정해진 라인만큼 용지를 피딩하고 용지를 절단합니다.

* Syntax
public void cutPaper(int feeds, Boolean getResponse)

* Paramters
- feeds: 용지를 절단하기 전 피딩할 라인 수
- getResponse: true일 경우, 용지 절단이 완료되면 애플리케이션 핸들러로
MESSAGE_PRINT_COMPLETE 메시지를 전달합니다. false일 경우,
용지만 절단하고 애플리케이션 핸들러로 메시지를 전달하지 않습니다.

* 지원 프린터
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150

Rev. 1.07 - 140 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
// TODO: getResponse 파라미터를 false로 설정하고 인쇄
mBixolonPrinter.cutPaper(10, true);
}
break;

case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
};
}

Rev. 1.07 - 141 -


POS 프린터

7-11-3 executeDirectIo

프린터에 직접 커맨드를 전송합니다. 프린터로부터 응답을 받아야 하는 경우,


MESSAGE_READ 메시지(arg1: PROCESS_EXECUTE_DIRECT_IO)를 애플리케이션
핸들러에 전달합니다.

* Syntax
public void executeDirectIo(byte[] command, boolean hasResponse)

* Parameters
- command: 프린터에 전송할 커맨드
- hasResponse: 프린터에 전송할 커맨드에 대한 응답을 받아야 하는 경우 true로,
그렇지 않으면 false로 설정합니다.

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- SPP-100II
- STP-103II
- SRP-275II

Rev. 1.07 - 142 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
byte[] command = new byte[] {0x10, 0x04, 0x02};
mBixolonPrinter.executeDirectIo(command, true);
}
break;

case BixolonPrinter.MESSAGE_READ:
if (msg.arg1 == BixolonPrinter.PROCESS_EXECUTE_DIRECT_IO) {
Bundle data = msg.getData();
byte[] response =
data.getByteArray(BixolonPrinter.KEY_STRING_DIRECT_IO);
// TODO: response 처리
}
break;
}
return true;
}
};
}

Rev. 1.07 - 143 -


POS 프린터

7-11-4 getMacAddress

유선랜이나 무선랜으로 연결된 프린터의 네트워크 MAC 주소를 리턴합니다.

* Syntax
public String getMacAddress()

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-275II

Rev. 1.07 - 144 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(“192.168.0.100”, 9100, 5000);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
String macAddress = mBixolonPrinter.getMacAddress();
Toast.makeText(getApplicationContext(), macAddress,
Toast.LENGTH_SHORT).show();
}
break;
}
return true;
}
};
}

Rev. 1.07 - 145 -


POS 프린터

7-11-5 getMonoPixels

Bitmap instance를 프린터로 인쇄하기 위해 흑백 이미지로 변환한 결과를 애플리케이션


핸들러에 전달합니다. 변환이 완료되면 MESSAGE_COMPLETE_PROCESS_BITMAP
메시지를 전달합니다. 메시지에 포함된 arg1은 변환된 이미지의 너비, arg2는 변환된
이미지의 높이입니다. 이미지의 변환을 성공하는 경우 byte 배열 타입의 데이터를 전
달하고, 이미지 변환을 실패하는 경우 null을 전달합니다.

* Syntax
public String getMonoPixels(Bitmap bitmap, int width, int level)

* Parameters
- bitmap: 변환할 Bitmap instance
- width: 인쇄할 이미지의 너비
Code Value Description
BITMAP_WIDTH_FULL -1 프린터 최대 너비만큼 늘리거나 줄여서 인쇄
이미지 크기를 변경하지 않고 인쇄
BITMAP_WIDTH_NONE 0 이미지 너비가 프린터 최대 너비보다 큰 경우에는
프린터 최대 너비만큼 줄여서 인쇄
정수 정수 직접 설정
- level: 인쇄할 이미지의 밝기 (13 ~ 88)

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 146 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
BitmapDrawable drawable =
(BitmapDrawable) getResources().getDrawable(R.drawable.logo);
Bitmap bitmap = drawable.getBitmap();
mBixolonPrinter.getMonoPixels(bitmap,
BixolonPrinter.BITMAP_WIDTH_FULL, 50);
}
break;

case BixolonPrinter.MESSAGE_COMPLETE_PROCESS_BITMAP:
Bundle data = msg.getData();
byte[] array =
data.getByteArray(BixolonPrinter.KEY_STRING_MONO_PIXELS);
If (array != null) {
int width = msg.arg1;
int height = msg.arg2;
// TODO: 이미지 데이터 처리
}
break;
}
return true;
}
};
}

Rev. 1.07 - 147 -


POS 프린터

7-11-6 getMonoPixels

지정된 이미지 파일을 프린터로 인쇄하기 위해 흑백 이미지로 변환한 결과를


애플리케이션 핸들러에 전달합니다. 변환이 완료되면
MESSAGE_COMPLETE_PROCESS_BITMAP 메시지를 전달합니다. 메시지에 포함된
arg1은 변환된 이미지의 너비, arg2는 변환된 이미지의 높이입니다. 이미지의 변환을
성공하는 경우 byte 배열 타입의 데이터를 전달하고, 이미지 변환을 실패하는 경우
null을 전달합니다.

* Syntax
public String getMonoPixels(String pathName, int width, int level)

* Parameters
- pathName: 변환할 이미지 파일의 절대 경로
- width: 인쇄할 이미지의 너비
Code Value Description
BITMAP_WIDTH_FULL -1 프린터 최대 너비만큼 늘리거나 줄여서 인쇄
이미지 크기를 변경하지 않고 인쇄
BITMAP_WIDTH_NONE 0 이미지 너비가 프린터 최대 너비보다 큰 경우에는
프린터 최대 너비만큼 줄여서 인쇄
정수 정수 직접 설정
- level: 인쇄할 이미지의 밝기 (13 ~ 88)

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- STP-103II
- SPP-100II

Rev. 1.07 - 148 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect(null);

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
String pathName =
Environment.getExternalStorageDirectory().getAbsolutePath() +
“/logo.png”;
mBixolonPrinter.getMonoPixels(pathName,
BixolonPrinter.BITMAP_WIDTH_FULL, 50);
}
break;

case BixolonPrinter.MESSAGE_COMPLETE_PROCESS_BITMAP:
Bundle data = msg.getData();
byte[] array =
data.getByteArray(BixolonPrinter.KEY_STRING_MONO_PIXELS);
If (array != null) {
int width = msg.arg1;
int height = msg.arg2;
// TODO: 이미지 데이터 처리
}
break;
}
return true;
}
};
}

Rev. 1.07 - 149 -


POS 프린터

7-11-7 getUsbSerial

USB로 연결된 프린터의 USB 시리얼 번호를 리턴합니다.

* Syntax
public String getUsbSerial()

* 지원 프린터
- SRP-350IIOBE

Rev. 1.07 - 150 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect();

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == STATE_CONNECTED) {
String usbSerial = mBixolonPrinter.getUsbSerial();
Toast.makeText(getApplicationContext(), usbSerial,
Toast.LENGTH_SHORT).show();
}
break;
}
return true;
}
};
}

Rev. 1.07 - 151 -


POS 프린터

7-11-8 initialize

프린터의 설정값을 프린터 부팅 직후 상태로 초기화 합니다. 프린터 버퍼에 있는


데이터는 초기화되지만 프린터 수신 버퍼에 있는 데이터는 초기화 되지 않습니다.
프린터에 저장된 NV 이미지도 초기화 되지 않습니다. 페이지 모드일 경우에는
인쇄 영역에 저장된 데이터를 모두 지우고 스탠다드 모드로 초기화 됩니다.

* Syntax
public void initialize()

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- SPP-100II
- STP-103II
- SRP-275II

Rev. 1.07 - 152 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect();

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.initialize();
}
break;
}
return true;
}
};
}

Rev. 1.07 - 153 -


POS 프린터

7-11-9 kickOutDrawer

금전등록기를 열거나 멜로디 박스를 울립니다.

* Syntax
public void kickOutDrawer(int connectorPin)

* Parameter
- connectorPin: 금전등록기나 멜로디 박스의 연결 핀
Code Value Description
DRAWER_CONNECTOR_PIN2 0 연결 핀 2
DRAWER_CONNECTOR_PIN5 1 연결 핀 5

* 지원 프린터
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- STP-103II
- SRP-330
- SRP-150

Rev. 1.07 - 154 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect();

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.kickOutDrawer(DRAWER_CONNECTOR_PIN5);
}
break;
}
return true;
}
};
}

Rev. 1.07 - 155 -


POS 프린터

7-11-10 setPrintColor

인쇄 색상을 설정합니다.

* Syntax
public void setPrintColor(int color)

* Parameter
- color: 설정할 인쇄 색상
Code Value Description
COLOR_BLACK 0 검정색
COLOR_RED 1 빨간색

* 지원 프린터
- SRP-275II

Rev. 1.07 - 156 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect();

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.disconnect();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.setColor(COLOR_BLACK);
}
break;
}
return true;
}
};
}

Rev. 1.07 - 157 -


POS 프린터

7-11-11 shutDown

프린터와의 연결을 종료하고 모든 자원을 해제합니다.


이 메소드가 실행된 후에는 BixolonPrinter instance를 다시 사용할 수 없습니다.

* Syntax
public void shutDown()

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- SPP-100II
- STP-103II
- SRP-275II

Rev. 1.07 - 158 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect();

public void onDestroy() {

if (mBixolonPrinter != null) {
mBixolonPrinter.shutDown();
}

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
// TODO: 인쇄
}
break;
}
return true;
}
};
}

Rev. 1.07 - 159 -


POS 프린터

7-11-12 updateFirmware

지정된 펌웨어 바이너리 파일을 프린터에 전송하고 프린터 펌웨어를 업데이트 합니다.
펌웨어 업데이트가 완료된 후에는 반드시 프린터를 재부팅 해야 됩니다.

* Syntax
public void updateFirmware(String binaryFilePath)

* Parameters
- binaryFilePath: 프린터에 전송할 펌웨어 바이너리 파일의 절대 경로

* 지원 프린터
- SPP-R200II / SPP-R300 / SPP-R400
- SRP-F310 / SRP-F312
- SRP-350II / SRP-350IIK / SRP-350IIOBE
- SRP-350plusII / SRP-352plusII
- SRP-330
- SRP-150
- SPP-100II
- STP-103II
- SRP-275II

Rev. 1.07 - 160 -


POS 프린터

* Example

public class MainActivity extends Activity {

private BixolonPrinter mBixolonPrinter;

public void onCreate(Bundle savedInstanceState) {

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.connect();

private final Handler mHandler = new Handler(new Handler.Callback() {

public boolean handleMessage(Message msg) {


switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
String binaryFilePath =
Environment.getExternalStorageDirectory().getAbsolutePath() +
“/SRP-R200II_Vxx.xx_xxxxxx.fls”;
mBixolonPrinter.updateFirmware(binaryFilePath);

try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

mBixolonPrinter.disconnect();
}
break;
}
return true;
}
};
}

Rev. 1.07 - 161 -


POS 프린터

8. Programming
8-1 Programming Flow
애플리케이션은 아래 순서대로 구성되어야 합니다.
1. 프린터 검색
2. 프린터 포트 열기
3. 인쇄 데이터 송신
4. 프린터 포트 닫기

8-2 프린터 검색

연결할 수 있는 프린터를 검색 합니다. 연결할 프린터를 직접 선택하는 경우,


이 과정은 생략할 수 있습니다. 아래 코드를 참고하시기 바랍니다.

private BixolonPrinter mBixolonPrinter;

mBixolonPrinter = new BixolonPrinter(this, mHandler, null);


mBixolonPrinter.findBluetoothPrinters(); // 블루투스로 연결하는 경우
// mBixolonPrinter.findNetworkPrinters(5000); // 네트워크로 연결하는 경우
// mBixolonPrinter.findUsbPrinters(); // USB로 연결하는 경우

private final Handler mHandler = new Handler(new Handler.Callback() {


public boolean handleMessage(Message msg) {

}
}

Rev. 1.07 - 162 -


POS 프린터

8-3 프린터 포트 열기

프린터 instance를 생성하고 포트를 열기 위해서는 connect 메소드를 사용해야 합니다.


아래 코드를 참고하시기 바랍니다.

private final Handler mHandler = new Handler(new Handler.Callback() {


public boolean handleMessage(Message msg) {
switch (msg.what) {
case BixolonPrinter.MESSAGE_BLUETOOTH_DEVICE_SET:
if (msg.obj ! = null) {
Set<BluetoothDevice> bluetoothDeviceSet =
(Set<BluetoothDevice>) msg.obj;
BluetoothDevice[] bluetoothDevices = bluetoothDeviceSet.toArray(
new BluetoothDevice[bluetoothDeviceSet.size()]);
mBixolonPrinter.connect(bluetoothDevices[i].getAddress());
}
break;

case BixolonPrinter.MESSAGE_USB_DEVICE_SET:
if (msg.obj ! = null) {
Set<String> networkDeviceSet = (Set<String>) msg.obj;
String[] networkDevices =
networkDeviceSet.toArray(new String[networkDeviceSet.size()]);
mBixolonPrinter.connect(networkDevices[i].getAddress(), 9100, 5000);
}
break;

case BixolonPrinter.MESSAGE_NETWORK_DEVICE_SET:
if (msg.obj ! = null) {
Set<UsbDevice> usbDeviceSet = (Set<UsbDevice>) msg.obj;
UsbDevice[] usbDevices =
usbDeviceSet.toArray(new UsbDevice[usbDeviceSet.size()]);
mBixolonPrinter.connect(usbDevices[i]);
}
break;
}
return true;
}
}

Rev. 1.07 - 163 -


POS 프린터

8-4 인쇄 데이터 송신

애플리케이션의 Handler에서 연결 완료 메시지를 수신한 후, 인쇄 데이터를 송신해야


합니다. 아래 코드를 참고하시기 바랍니다.

private final Handler mHandler = new Handler(new Handler.Callback() {


public boolean handleMessage(Message msg) {
switch (msg.what) {
case BixolonPrinter.MESSAGE_STATE_CHANGE:
if (msg.arg1 == BixolonPrinter.STATE_CONNECTED) {
mBixolonPrinter.printText("Text to print\n",
BixolonPrinter.ALIGNMENT_LEFT,
BixolonPrinter.TEXT_ATTRIBUTE_FONT_A,
BixolonPrinter.TEXT_SIZE_HORIZONTAL1 |
BixolonPrinter.TEXT_SIZE_VERTICAL1, false);
}
break;
}
return true;
}
}

8-5 프린터 포트 닫기

애플리케이션 실행 중에 프린터와의 연결을 유지하는 경우는 애플리케이션이 종료될


때 프린터 연결을 해제하면 됩니다. 인쇄할 때만 프린터를 연결하는 경우에는 인쇄
완료 메시지를 수신하고 연결을 종료해야 됩니다. 아래 코드를 참고하시기 바랍니다.

private final Handler mHandler = new Handler(new Handler.Callback() {


public boolean handleMessage(Message msg) {
switch (msg.what) {
case BixolonPrinter.MESSAGE_PRINT_COMPLETE:
mBixolonPrinter.disconnect();
break;
}
return true;
}
}

Rev. 1.07 - 164 -


POS 프린터

9. 부록
9-1 프린터 모델별 지원 메소드
SRP-
SPP-
SRP- 350II
R200II
Methods F310 350IIK
R300
F312 350plusII
R400
352plusII
void automateStatusBack(boolean isEnable) O O O
void cancelMsrReaderMode() O X X
void connect() O O O
void connect(String address) O X X
void connect(String host, int port, int timeout) O O O
void connect(UsbDevice device) O O O
void connectUsb(String serial) X X O
void cutPaper(boolean getResponse) X O O
void cutPaper(int feeds, boolean getResponse) X X O
void defineNvImage(Bitmap bitmap, int width, int
O O O
level, int keyCode)
void defineNvImage(String pathName, int width,
O O O
int level, int keyCode)
void disconnect() O O O
void executeAutomaticCalibration() O X O
void executeDirectIo(byte[] command, boolean
O O O
hasResponse)
void findBluetoothPrinters() O X X
void findNetworkPrinters(int timeout) O O O
void findUsbPrinters() O O O
void findUsbPrintersBySerial() X X X
void formFeed(boolean getResponse) O O O
void getBatteryStatus() O X X
void getBatteryVoltageStatus() X X X
void getBsCodePage() X X X
void getDefinedNvImageKeyCode() O O O
String getMacAddress() O O O
void getMonoPixels(Bitmap bitmap, int width, int
O O O
level)
void getMonoPixels(String pathName, int width,
O O O
int level)
void getMsrMode() O X X
void getPowerMode() X X X
void getPowerSavingMode() X X O
void getPrintDensity() X X O
void getPrinterId(int idType) O O O
void getPrintSpeed() X X O
void getReceiveBufferDataSize() X X X
void getStatus() O O O
void getTphThermistorStatus() X X X
String getUsbSerial() X X X

Rev. 1.07 - 165 -


POS 프린터

SRP-
SPP-
SRP- 350II
R200II
Methods F310 350IIK
R300
F312 350plusII
R400
352plusII
void initialize() O O O
void kickOutDrawer() X O O
void linefeed(int lines, Boolean getResponse) O O O
void print1dBarcode(String data,
int barCodeSystem, int alignment, int width, O O O
int height)
void printBitmap(Bitmap bitmap, int alignment,
O O O
int width, int level, boolean getResponse)
void printBitmap(byte[] pixels, int alignment,
O O O
int width, int level, boolean getResponse)
void printBitmap(String pathName,
int alignment, int width, int level, O O O
boolean getResponse)
void printDataMatrix(String data, int alignment,
O X X
int size, boolean getResponse)
void printDotMatrixBitmap(Bitmap bitmap,
int alignment, int width, int level, X X X
boolean getResponse)
void printDotMatrixBitmap(String pathName,
int alignment, int width, int level, X X X
boolean getResponse)
void printDotMatrixText(String text,
int alignment, int attribute, int size, X X X
boolean getResponse)
void printMaxiCode(String data, int alignment,
O X X
int mode, boolean getResponse)
void printNvImage(int keyCode,
O O O
boolean getResponse)
void printPdf417(String data, int alignment,
O O O
int width, int height, Boolean getResponse)
void printQrCode(String data, int alignment,
O O O
int model, int size, boolean getResponse)
void printSelfTest(Boolean getResponse) O O O
void printText(String text, int alignment,
O O O
int attribute, int size, boolean getResponse)
void removeAllNvImage() O O O
void removeNvImage(int keyCode) O O O
void setAbsolutePrintPosition(int position) O O O
void setAbsoluteVerticalPrintPosition
O O O
(int position)
void setBsCodePage(int codePage) X X X
void setDoubleByteFont(int codePage) X O O
void setLabelMode() O X X
void setMsrReaderMode() O X X
void setPageMode() O O X

Rev. 1.07 - 166 -


POS 프린터

SRP-
SPP-
SRP- 350II
R200II
Methods F310 350IIK
R300
F312 350plusII
R400
352plusII
void setPowerSavingMode(Boolean enabled,
X X O
int time)
void setPrintArea(int x, int y, int width, int height) O O X
void setPrintColor(int color) X X X
void setPrintDensity(int density) X X X
void setPrintDirection(int direction) O O X
void setPrintSpeed(int speed) X X O
void setReceiptMode() O X X
void setSingleByteFont(int codePage) O O O
void setStandardMode() O O X
void shutdown() O O O
void updateFirmware(String binaryFilePath) O O O

Rev. 1.07 - 167 -


POS 프린터

SRP-
Methods SRP-330 SRP-150
350IIOBE
void automateStatusBack(boolean isEnable) O O O
void cancelMsrReaderMode() X X X
void connect() O O O
void connect(String address) O X X
void connect(String host, int port, int timeout) O O X
void connect(UsbDevice device) O O X
void connectUsb(String serial) O X X
void cutPaper(boolean getResponse) O O O
void cutPaper(int feeds, boolean getResponse) O O O
void defineNvImage(Bitmap bitmap, int width,
O O O
int level, int keyCode)
void defineNvImage(String pathName, int width,
O O O
int level, int keyCode)
void disconnect() O O O
void executeAutomaticCalibration() X X X
void executeDirectIo(byte[] command,
O O O
boolean hasResponse)
void findBluetoothPrinters() O X X
void findNetworkPrinters(int timeout) O O X
void findUsbPrinters() O O O
void findUsbPrintersBySerial() O X X
void formFeed(boolean getResponse) X X X
void getBatteryStatus() X X X
void getBatteryVoltageStatus() X X X
void getBsCodePage() X X X
void getDefinedNvImageKeyCode() O O O
String getMacAddress() O O X
void getMonoPixels(Bitmap bitmap, int width,
O O O
int level)
void getMonoPixels(String pathName, int width,
O O O
int level)
void getMsrMode() X X X
void getPowerMode() X X X
void getPowerSavingMode() O X X
void getPrintDensity() O X X
void getPrinterId(int idType) O O O
void getPrintSpeed() O X X
void getReceiveBufferDataSize() X X X
void getStatus() O O O
void getTphThermistorStatus() X X X
String getUsbSerial() O X X
void initialize() O O O
void kickOutDrawer() O O O
void linefeed(int lines, Boolean getResponse) O O O

Rev. 1.07 - 168 -


POS 프린터

SRP-
Methods SRP-330 SRP-150
350IIOBE
void print1dBarcode(String data,
int barCodeSystem, int alignment, int width, O O O
int height)
void printBitmap(Bitmap bitmap, int alignment,
O O O
int width, int level, boolean getResponse)
void printBitmap(byte[] pixels, int alignment,
O O X
int width, int level, boolean getResponse)
void printBitmap(String pathName,
int alignment, int width, int level, O O X
boolean getResponse)
void printDataMatrix(String data, int alignment,
X O X
int size, boolean getResponse)
void printDotMatrixBitmap(Bitmap bitmap,
int alignment, int width, int level, X X X
boolean getResponse)
void printDotMatrixBitmap(String pathName,
int alignment, int width, int level, X X X
boolean getResponse)
void printDotMatrixText(String text,
int alignment, int attribute, int size, X X X
boolean getResponse)
void printMaxiCode(String data, int alignment,
X X X
int mode, boolean getResponse)
void printNvImage(int keyCode,
O O O
boolean getResponse)
void printPdf417(String data, int alignment,
O O O
int width, int height, Boolean getResponse)
void printQrCode(String data, int alignment,
O O O
int model, int size, boolean getResponse)
void printSelfTest(Boolean getResponse) O O O
void printText(String text, int alignment,
O O O
int attribute, int size, boolean getResponse)
void removeAllNvImage() O O X
void removeNvImage(int keyCode) O O X
void setAbsolutePrintPosition(int position) X X X
void setAbsoluteVerticalPrintPosition
X X O
(int position)
void setBsCodePage(int codePage) X X X
void setDoubleByteFont(int codePage) O O X
void setLabelMode() X X X
void setMsrReaderMode() X X X
void setPageMode() X X X
void setPowerSavingMode(Boolean enabled,
O X X
int time)
void setPrintArea(int x, int y, int width, int height) X X X
void setPrintColor(int color) X X O
void setPrintDensity(int density) O X O

Rev. 1.07 - 169 -


POS 프린터

SRP-
Methods SRP-330 SRP-150
350IIOBE
void setPrintDirection(int direction) X X X
void setPrintSpeed(int speed) O X X
void setReceiptMode() X X X
void setSingleByteFont(int codePage) O O O
void setStandardMode() X X X
void shutdown() O O O
void updateFirmware(String binaryFilePath) O O O

Rev. 1.07 - 170 -


POS 프린터

Methods STP-103II SPP-100II SRP-275II


void automateStatusBack(boolean isEnable) O O O
void cancelMsrReaderMode() X X X
void connect() X O X
void connect(String address) X X X
void connect(String host, int port, int timeout) X X O
void connect(UsbDevice device) O X X
void connectUsb(String serial) O X X
void cutPaper(boolean getResponse) X X O
void cutPaper(int feeds, boolean getResponse) X X O
void defineNvImage(Bitmap bitmap, int width,
O O X
int level, int keyCode)
void defineNvImage(String pathName, int width,
O O X
int level, int keyCode)
void disconnect() O O O
void executeAutomaticCalibration() X X X
void executeDirectIo(byte[] command,
O O O
boolean hasResponse)
void findBluetoothPrinters() X X X
void findNetworkPrinters(int timeout) X X O
void findUsbPrinters() O O X
void findUsbPrintersBySerial() X X X
void formFeed(boolean getResponse) X X X
void getBatteryStatus() X X X
void getBatteryVoltageStatus() X X X
void getBsCodePage() X X O
void getDefinedNvImageKeyCode() O O X
String getMacAddress() X X O
void getMonoPixels(Bitmap bitmap, int width,
O O O
int level)
void getMonoPixels(String pathName, int width,
O O O
int level)
void getMsrMode() X X X
void getPowerMode() X X X
void getPowerSavingMode() X O X
void getPrintDensity() X O X
void getPrinterId(int idType) O O O
void getPrintSpeed() X O X
void getReceiveBufferDataSize() X O X
void getStatus() O O O
void getTphThermistorStatus() X X X
String getUsbSerial() X X X
void initialize() O O O
void kickOutDrawer() O X O
void linefeed(int lines, Boolean getResponse) O O O
void print1dBarcode(String data,
int barCodeSystem, int alignment, int width, O O O
int height)
void printBitmap(Bitmap bitmap, int alignment,
O O O
int width, int level, boolean getResponse)

Rev. 1.07 - 171 -


POS 프린터

Methods STP-103II SPP-100II SRP-275II


void printBitmap(byte[] pixels, int alignment,
O O O
int width, int level, boolean getResponse)
void printBitmap(String pathName,
int alignment, int width, int level, O O O
boolean getResponse)
void printDataMatrix(String data, int alignment,
X X X
int size, boolean getResponse)
void printDotMatrixBitmap(Bitmap bitmap,
int alignment, int width, int level, X X X
boolean getResponse)
void printDotMatrixBitmap(String pathName,
int alignment, int width, int level, X X X
boolean getResponse)
void printDotMatrixText(String text,
int alignment, int attribute, int size, X X X
boolean getResponse)
void printMaxiCode(String data, int alignment,
X X X
int mode, boolean getResponse)
void printNvImage(int keyCode,
O O X
boolean getResponse)
void printPdf417(String data, int alignment,
O X X
int width, int height, Boolean getResponse)
void printQrCode(String data, int alignment,
O O X
int model, int size, boolean getResponse)
void printSelfTest(Boolean getResponse) O O O
void printText(String text, int alignment,
O O O
int attribute, int size, boolean getResponse)
void removeAllNvImage() O O X
void removeNvImage(int keyCode) O O X
void setAbsolutePrintPosition(int position) X X X
void setAbsoluteVerticalPrintPosition
X X X
(int position)
void setBsCodePage(int codePage) X X O
void setDoubleByteFont(int codePage) O O X
void setLabelMode() X X X
void setMsrReaderMode() X X X
void setPageMode() X X X
void setPowerSavingMode(Boolean enabled,
X O X
int time)
void setPrintArea(int x, int y, int width, int height) X X X
void setPrintColor(int color) X X O
void setPrintDensity(int density) X O X
void setPrintDirection(int direction) X X X
void setPrintSpeed(int speed) X O X
void setReceiptMode() X X X
void setSingleByteFont(int codePage) O O O
void setStandardMode() X X X
void shutdown() O O O
void updateFirmware(String binaryFilePath) O O O

Rev. 1.07 - 172 -

You might also like