API dla drukarek Bluetooth firmy Compart
Nasza firma przygotowała oraz udostępniła dla deweloperów Androida uniwersalny sterownik dla urządzeń drukujących zainstalowanym modułem bluetooth.
Sterownik obecnie obsługuje tanie drukarki termiczne Bluetooth firmy Compart.pl modele VLINE-112 B PORTABLE KIT oraz VLTP-112 V2 B.
Opis api :
W celu skorzystania z API sterownika należy skopiować plik BluetoothPrint.jar do katalogu libs w projekcie aplikacji. Jeżeli nie ma takiego katalogu proszę go utworzyć. Po skopiowaniu biblioteki należy na właściwościach projektu (prawy klawisz) klinąć refresh. Następnie w wybranej klasie acitivty należy zaimportować klasy:
import com.pgmsoft.bluetooth_print_lib.PrinterBroadcastReceiver;
import com.pgmsoft.bluetooth_print_lib.PrinterDriver;
import com.pgmsoft.bluetooth_print_lib.PrinterService;
Opis klas
Sterownik posiada 3 klasy:
PrinterService – Klasa serwisu bluetooth, odpowiedzialna za połączenie z drukarką.
PrinterDriver – Klasa sterownika drukarki, odpowiedzialna za przygotowanie danych do wydruku.
PrinterBroadcastReceiver – Klasa zdarzeń.
Przykładowy projekt
W celu szybkiego zaznajomienia się ze sterownikiem, można wykorzystać przykładowy projekt znajdujący się w pliku BluetoothPrint_test.zip
Aby zaimportować projekt do Eclipse’a należy go najpierw rozpakować, następne w Eclipse z menu File wybrać Import a następnie z zakładki General zaznaczyć Existing project into Workspace i wskazać folder z rozpakowanego projektu.
Klasa PrinterService – funkcje
new PrinterDriver(Context context) – konstruktor, argumentem jest context aplikacji
boolean isLoaded() – sprawdzenie instalacji sterownika, jeżeli nie jest zainstalowany automatycznie wyświetlany jest monit o instalacje z google play
boolean loadAgain() – ponowna próba inicjalizacji sterownika
void serviceOn() – włącza serwis sterownika bluetooth
void serviceOff() – wyłącza serwis sterownika bluetooth
void showDeviceList() – okno do parowania i łączenia z drukarkami
void setBluetoothOfOnExit(boolean flaga) – ustawienie opcji wyłączenia Bluetooth przy wyjściu z aplikacji (domyślnie false)
void printData(byte[] dane) – przesłanie danych wydruku do drukarki, argumentem jest funckcja byte[] printContents() z klasy PrinterDriver
Klasa PrinterDriver – stałe
Modele drukarek
PrinterDriver.MODEL_VLINE_112 = 0;
PrinterDriver.MODEL_VLINE_112_v2 = 1;
Kodowanie drukarki
PrinterDriver.CHARSET_WINDOWS_1250 = 1;
PrinterDriver.CHARSET_WINDOWS_1251 = 2;
PrinterDriver.CHARSET_WINDOWS_1252 = 4;
Ustawienia tekstu
PrinterDriver.TEXT_ALIGN_LEFT = 0;
PrinterDriver.TEXT_ALIGN_CENTER = 1;
PrinterDriver.TEXT_ALIGN_RIGHT = 2;
Kody sterujące
//styl czcionki
PrinterDriver.CODE_FONT_STYLE_NORMAL = 0;
PrinterDriver.CODE_FONT_STYLE_BIG = 1;
PrinterDriver.CODE_FONT_STYLE_SMALL = 2;
//rozmiar czcionki – aktualnie nie wspierane przez Vline 112
PrinterDriver.CODE_FONT_SIZE_NORMAL = 3;
PrinterDriver.CODE_FONT_SIZE_DOUBLE = 4;
PrinterDriver.CODE_CARRIAGE_RETURN = 5; //znak nowej lini
PrinterDriver.CODE_LINE_FEED = 6; //pusta linia
PrinterDriver.CODE_FORM_FEED = 7; //wysunięcie papieru
PrinterDriver.CODE_PRINT_TIME = 8; //wydruk czasu wydruku
PrinterDriver.CODE_PRINT_DATE = 9; //wydruk daty wydruku
PrinterDriver.CODE_PRINTER_STATUS = 10; //status drukarki – nie wspierane //przez Vline 112
Klasa PrinterDriver – funkcje
new PrinterDriver(Context context, int model, int charset) – konstruktor; argumenty: context aplikacji, model drukarki (patrz stałe), kodowanie drukarki (patrz stałe)
boolean isLoaded() – sprawdzenie instalacji sterownika, jeżeli nie jest zainstalowany automatycznie wyświetlany jest monit o instalacje z google play
boolean loadAgain() – ponowna próba inicjalizacji sterownika
void resetPrintContents() – zerowanie danych do wydruku
byte[] printContents() – wydruk danych do tablicy, wynik tej funkcji jest argumentem funkcji printData(byte[] dane) z klasy PrinterService przekazującą dane do drukarki
void appendLineString(String string, int textAlign) – dodanie formatowanego tekstu z wyrównaniem (patrz stałe)
void appendLineString(String string, int textAlign,
int paddingSigns) – dodanie formatowanego tekstu z wyrównaniem (patrz stałe) oraz wcięciem (maksymalne wcięcie to 4 znaki)
void appendLeftAndRightSideLine(String left, int right,
int paddingSigns) – dodanie formatowanego tekstu z lewej i prawej strony z wcięciem (maksymalne wcięcie to 4 znaki)
void appendRawString(String string) – dodanie tekstu bez formatowania
void appendCode(int code) – dodanie kodu sterującego(patrz stałe)
void textLine() – dodanie pojedynczej linii
void textDoubleLine() – dodanie podwójnej linii
void lcdTextOn(String text) – wyświetlenie tekstu na LCD; Ważne – brak polskich czcionek
void lcdTextOff() – wyłącza wyświetlany tekst
void code128(String text, boolean showText) – wydruk kodu kreskowago (maks 20 znaków) z tekstem (showText na true) lub bez tekstu (showText na false)
Klasa PrinterBroadcastReceiver
Jest to klasa odbioru zdarzeń tj. wyłączenie / włączenie bluetooth, łączenia z drukarką itd. Implementacja tej klasy oraz jej wywoływanych metod znajduje się w przykładowym projekcie.
Ważna uwaga, sterownik jest w wersji demo, aby z niego skorzystać główna nazwa paczki projektu musi być ustawiona na com.google.test inaczej wyświetli się komunikat o braku licencji. Funkcjonalność wersji demo i pełnej jest taka sama, z tym że projektu o nazwie paczki com.google.test nie można wrzucić na google play (market)
W przypadku chęci skorzystania z pełnej wersji sterownika prosimy o przesłanie drogą mailową nazwy paczki projektu (np. com.firma.projekt) w celu rejestracji licencji.
Koszt rejestracji jednej paczki wynosi 100.oo zł netto.
Licencja obejmuje jedną aplikacją na android play (market) niezależnie od ilości ściągnięć.
Wersja DEMO API jest już dostępne w Android Market.
Pytania i uwagi dotyczące API sterownika prosimy kierować na skrzynkę:
- +48 602 215 711
- info@pgmsoft.com







