Implementação da Classe Printer - versão 1.0

  

capa.jpg

Introdução

O posGo é um terminal de vendas móvel completo, em um único dispositivo estão a CPU, tela touch, impressora térmica e “maquininha” de cartão. Tudo isto em um equipamento de design prático, leve, tela de toque colorida e capacitiva de 5,5 polegadas, com display de alta resolução e multitouch para ser segurado com uma mão.

Possui bateria interna que permite o funcionamento desligado da tomada e com conexão de rede sem fio para poder ser levado em qualquer lugar.

Opera com sistema Android, permitindo a utilização de aplicativos de vendas compatíveis.

É perfeito para ser utilizado como terminal de vendas principal ou extensão de um terminal de vendas fixo.

O posGo é ideal para negócios com pouco espaço ou que exigem atendimento do cliente com mobilidade, acabando com as filas de caixa.

O cliente conta com recursos que inovam e ao mesmo tempo simplificam o atendimento:

  • Assinatura na tela;

  • Leitor 1D e 2D (QRCode);

  • GPS, 3G e Bluetooth;

  • Leitor de cartão por tarja magnética e chip;

  • NFC.

Especificações Técnicas

Processador

CPU de 4 núcleos + processador de alta segurança

Memória

FLASH 8GB, RAM 1GB esuporte para cartão microSD

Tela

sensível ao toque, tipo capacitivo, suporta e-assinatura

Display

5,5 polegadas, 720 x 1280

PINPAD

PINPAD integrado (Teclado virtual)

Impressora

Impressora térmica direta

Bobina de Papel

Diâmetro 40mm , largura 25mm

Leitor Magnético

1,2,3 tarjas bidirecionais

Comunicação

3G Netcom , WIFI e Bluetooth 4.1

Sistema Operacional

Android 5.1 lolipop

Leitores de Cartão

PSAM: 2

SIM: 1

SD: 1

NFC 13.56MHz, support ISO14443

Não é possível emular o posGo no Android Studio, pois seu SDK tem dependências específicas do hardware!

Bibliotecas

Arquivo Descrição

nexgosdk-2.x.x.jar

Pacote Jar de interface da API

libemvjni.so

Biblioteca EMV

libsdkemvjni.so

Biblioteca EMV do SDK

libgencode.so

Biblioteca Encode

Como obtenho o SDK do posGo?

Baixe as bibliotecas acessando o sistema posGo, na página inicial vá em Acesso a Desenvolvedores e faça seu cadastro!

Requisitos Básicos do Sistema

Ambiente de Desenvolvimento: Android Studio 2.0 ou superior.

Sistema Operacional: Android 5.1.1.

Classe Printer

Essa classe é responsável pela impressão no posGo.

Obter o objeto da classe printer:

Printer printer = deviceEngine.getPrinter();

A tabela a seguir mostra os valores de retorno suportados pelo método da classe de impressora:

Nome da Constante Valor Descrição

Printer_Base_Error

-1000

Erro

Printer_Print_Fail

Printer_Print_Error -1

Falha na impressão

Printer_AddPrnStr_Fail

Printer_Print_Error -2

Falha na configuração do buffer

Printer_AddImg_Fail

Printer_Print_Error -3

Falha na configuração da imagem

Printer_Busy

Printer_Print_Error -4

A impressora está ocupada

Printer_PaperLack

Printer_Print_Error -5

A impressora está sem papel

Printer_Wrong_Package

Printer_Print_Error -6

O pacote de impressão está incorreto

Printer_Fault

Printer_Print_Error -7

Impressora em falha

Printer_TooHot

Printer_Print_Error -8

A impressora está superaquecida

Printer_UnFinished

Printer_Print_Error -9

A impressão não está completa

Printer_NoFontLib

Printer_Print_Error -10

A impressora não possui uma fonte

Printer_OutOfMemory

Printer_Print_Error -11

o pacote é muito grande

Printer_Other_Error

Printer_Print_Error -999

Erro de exceção desconhecido

Este módulo funciona usando o fluxograma básico:

dot diagram printer.png

initPrinter

Inicializa a impressão.

public int initPrinter();
Parâmetros:

Não tem parâmetros.

Retorno:

SdkResult.Success: sucesso.


getStatus

Obter o status da impressora.

public int getStatus();
Parâmetros:

Não tem parâmetros.

Retorno:

SdkResult.Success: Impresso com sucesso

SdkResult.Printer_UnFinished: A impressão não está completa

SdkResult.Printer_PaperLack: A impressora está sem papel

SdkResult.Printer_TooHot: A impressora está superaquecida

SdkResult.Printer_Fail: Falha na impressão

SdkResult.Fail: Erro desconhecido


appendImage

Insere uma imagem.

public int appendImage(Bitmap bitmap, AlignEnum align);
Parâmetros:
Parâmetro Descrição

bitmap

arquivo de imagem

align

Tipo enumerado de alinhamento

AlignEnum
Nome Enumerado Descrição

LEFT

Alinhar à esquerda

RIGHT

Alinhar à direita

CENTER

Alinhar ao centro

Retorno:

SdkResult.Success: Imagem inserida com sucesso

SdkResult.Printer_AddImg_Fail: Falha ao inserir a imagem


AppendPrnStr

Adiciona uma String de texto.

public int appendPrnStr (String text, int fontsize, AlignEnum align,
Boolean isBoldFont);
Parâmetros:
Parâmetro Descrição

Text

Dados da String a ser adicionada.

fontSize

Font Size small: 16; normal: 20; large: 24; x-large: 32

align

Tipo enumerado de alinhamento.

isBoldFont

Negrito, sendo true (sim) ou false (não).

AlignEnum
Nome Enumerado Descrição

LEFT

Alinhar à esquerda

RIGHT

Alinhar à direita

CENTER

Alinhar ao centro

Retorno:

SdkResult.Success: Impresso com sucesso

SdkResult.Printer_Wrong_Package: Pacote para impressão com formato incorreto.

SdkResult.Printer_AddPrnStr_Fail: Buffer da String configurado incorretamente.


AppendPrnStr

Imprime um texto com duplo alinhamento, esquerdo e direito ao mesmo tempo.

public int appendPrnStr (String leftText, String rightText, int fontsize, AlignEnum align,
Boolean isBoldFont);
Parâmetros:
Parâmetro Descrição

leftText

Texto Alinhado a esquerda

rightText

Texto Alinhado a direita

fontSize

Font Size small: 16; normal: 20; large: 24; x-large: 32

align

Tipo enumerado de alinhamento.

isBoldFont

Negrito, sendo true (sim) ou false (não).

AlignEnum
Nome Enumerado Descrição

LEFT

Alinhar à esquerda

RIGHT

Alinhar à direita

CENTER

Alinhar ao centro

Retorno:

SdkResult.Success: Impresso com sucesso

SdkResult.Printer_Wrong_Package: Pacote para impressão com formato incorreto.

SdkResult.Printer_AddPrnStr_Fail: Buffer da String configurado incorretamente.


AppendBarcode

Imprime um código de barras unidimensional.

public int appendBarcode (String content, BarcodeFormatEnum format, int width, int height,
AlignEnum align);
Parâmetros:
Parâmetro Descrição

content

Valor do código a ser gerado

format

Formata o código de acordo com a tabela a seguir

width

Largura do código a ser impresso, valor de 1 a 384

height

Altura do código a ser impresso, valor maior que 0

align

Alinhamento

BarcodeFormatEnum
Tipo de formatos

AZTEC

CODABAR

CODE_39

CODE_93

CODE_128

DATA_MATRIX

EAN_8

EAN_13

ITF

MAXICODE

PDF_417

QR_CODE

RSS_14

RSS_EXPANDED

UPC_A

UPC_E

UPC_EAN_EXTENSION

AlignEnum
Nome Enumerado Descrição

LEFT

Alinhar à esquerda

RIGHT

Alinhar à direita

CENTER

Alinhar ao centro

Retorno:

SdkResult.Success: Impresso com sucesso

SdkResult.Printer_AddImg_Fail: Falha ao inserir o código.


AppendQRCode

Imprime um código bidimensional QR Code.

public int appendQRcode (String content, int width, int height, AlignEnum align);
Parâmetros:
Parâmetro Descrição

content

Valor do código a ser gerado

width

Largura do código a ser impresso, valor de 1 a 384

height

Altura do código a ser impresso, valor maior que 0

align

Alinhamento

AlignEnum
Nome Enumerado Descrição

LEFT

Alinhar à esquerda

RIGHT

Alinhar à direita

CENTER

Alinhar ao centro

Retorno:

SdkResult.Success: Impresso com sucesso

SdkResult.Printer_AddImg_Fail: Falha ao inserir o código.


FeedPaper

Avanço do papel.

Public void feedPaper (int value);
Parâmetros:
Parâmetro Descrição

value

O comprimento do papel está em pixels; intervalo superior ou igual a 0; Se o usuário não tiver definido, o valor padrão é igual a 0

Retorno:

Não há retorno.


CutPaper

Corte do papel.

Deve-se avançar o papel com feedPaper() antes de fazer o corte!

Public void cutPaper ();
Parâmetros:

Não há parâmetros.

Retorno:

Não há retorno.


StartPrint

Inicia a impressão.

public int startPrint (boolean rollPaperEnd, OnPrintListener listener);
Parâmetros:
Parâmetro Descrição

rollPaperEnd

Avance para o final do papel automaticamente, sendo true (sim) ou false (não)

listener

A interface de retorno de chamada após a impressão estar completa

Retorno:

SdkResult.Success: Impresso com sucesso, o listener pode ser acionado.

SdkResult.Printer_Busy: Impressora ocupada

SdkResult.Printer_Print_Fail: Não há dados para imprimir

SdkResult.Param_In_Invalid: Parâmetro incorreto


SetLetterSpacing

Defina o espaçamento entre as linhas ordenadas de impressão.

public void setLetterSpacing (int value);
Parâmetros:
Parâmetro Descrição

value

Espaçamento entre linhas em pixels. Valor padrão é 4

Retorno:

Não há retorno.


setGray

Configure a escala de cinza.

public void setGray (GrayLevelEnum level);
Parâmetros:
Parâmetro Descrição

level

Estabelece o valor cinza; Se o usuário não definiu, o valor padrão é LEVEL_0. Quanto maior a escala de cinza, quanto mais escura a fonte de impressão, mais lenta a velocidade de impressão.

GrayLevelEnum
Nome Enumerado Descrição

LEVEL_0

Escala de cinza primária

LEVEL_1

Escala de cinza secundária

LEVEL_2

Escala de cinza terciária

Retorno:

Não há retorno.


setTypeface

Configure o tipo de fonte.

public void setTypeface (Typeface typeface);
Parâmetros:
Parâmetro Descrição

typeface

Tipo de fonte do tipo de SDK do Android; se o usuário não definiu, o padrão é valueTypeface.DEFAULT

Retorno:

Não há retorno.


Suporte

Chat Online - bematechpartners.com.br

Atendimento ao desenvolvedor - 0800-6447277