API dla drukarek Bluetooth Mefa/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 oraz drukarki MEFA 12

 

 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 1000.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

 

 



PgmSoft.com 2009 - 2017