Impressões
É possível utilizar a impressora térmica dos dispositivos Point Smart para realizar impressões de imagens em bitmap, DTE, ou imagens personalizadas a partir de padrões chamados Custom Tags.
Imprimir Bitmap
Para imprimir imagens em bitmap com a impressora da Point Smart, use a função print da classe BitmapPrinter
. O acesso ocorre por meio do objeto MPManager
, como no exemplo a seguir:
val bitmapPrinter = MPManager.bitmapPrinter
val imageToPrint: Bitmap = bitmap // Obter a imagem bitmap que será impressa
bitmapPrinter.print(imageToPrint) { response ->
response.doIfSuccess { printResult ->
// Gerenciar a impressão bem-sucedida
}.doIfError { error ->
// Gerenciar o erro na operação de impressão
final BitmapPrinter bitmapPrinter = MPManager.INSTANCE.getBitmapPrinter();
final Bitmap imageToPrint = bitmap // Obter a imagem Bitmap que será impressa
final Function1<MPResponse<String>, Unit> callback = (final MPResponse<String> response) -> {
if (response.getStatus() == ResponseStatus.SUCCESS) {
// Gerenciar a operação bem-sucedida
} else {
// Gerenciar o erro na operação de impressão
}
return Unit.INSTANCE;
};
bitmapPrinter.print(imageToPrint, callback);
Campo | Descrição |
dataToPrint (Bitmap) | A imagem bitmap que será impressa. |
callback ((MPResponse<String>) -> Unit) | Função de devolução da chamada que proporciona o resultado da operação de impressão. O [MPResponse] encapsula o estado, o erro (se houver) e os dados em caso de sucesso, que contêm um String representando o ID ou estado da impressão. |
Imprimir Custom Tag e DTE
A função print
da classe BitmapPrinter
em nosso SDK também pode ser utilizada para criar impressões personalizadas ou DTEs.
No primeiro caso, a impressão é realizada a partir de um padrão chamado Custom Tag, que consiste em enviar uma string com diferentes tags de controle para sua posterior interpretação por nosso sistema, resultando em um comprovante físico.
No caso do DTE, a impressão é feita enviando como parâmetro um .xml
da transação.
Você pode ver a seguir como implementar impressões de Custom Tags e DTEs.
[[[
kotlin
val bitmapPrinter = MPManager.bitmapPrinter
val customTagToPrint: String = "{br}{b}este é um texto de teste{/s}" // Se você precisa imprimir um DTE, troque a string custom tag pelo xml.
val paymentMethodName: String? = null // Parâmetro opcional que permite imprimir o nome do método de pagamento usado em caso de querer fazer a impressão de um recibo eletrônico (DTE tipo 39,41). Valor padrão: null.
val printPdf417InBoleta: Boolean? = null // Parâmetro opcional que permite imprimir o código de barras pdf417 (a mancha) em caso de querer fazer a impressão de um recibo eletrônico (DTE tipo 39,41). Valor padrão: null.
bitmapPrinter.print(customTagToPrint, paymentMethodName, printPdf417InBoleta) { response ->
response.doIfSuccess { printResult ->
// Tratar a impressão bem-sucedida
}.doIfError { error ->
// Tratar o erro na operação de impressão
java
final BitmapPrinter bitmapPrinter = MPManager.INSTANCE.getBitmapPrinter();
final String customTagToPrint = "{br}{b}este é um texto de teste{/s}" // Se você precisa imprimir um DTE, troque a string custom tag pelo xml.
@Nullable
final String paymentMethodName; // Parâmetro opcional que permite imprimir o nome do método de pagamento em caso de querer fazer a impressão de um recibo eletrônico (DTE tipo 39,41). Valor padrão: null.
@Nullable
final Boolean printPdf417InBoleta; // Parâmetro opcional que permite imprimir o código de barras pdf417 (a mancha) em caso de querer fazer a impressão de um recibo eletrônico (DTE tipo 39,41). Valor padrão: null.
final Function1<MPResponse<String>, Unit> callback = (final MPResponse<String> response) -> {
if (response.getStatus() == ResponseStatus.SUCCESS) {
// Tratar a impressão bem-sucedida
} else {
// Tratar o erro na operação de impressão
}
return Unit.INSTANCE;
};
bitmapPrinter.print(customTagToPrint, paymentMethodName, printPdf417InBoleta, callback);