Configurar impressões
Com o recurso de impressões, você pode gerenciá-las diretamente no seu aplicativo, obtendo os documentos do terminal atribuído ou enviando-os para uma impressora Bluetooth.
A partir disso, o ticket da compra estará disponível para impressão e você poderá integrar impressões personalizadas. Esta função pode ser útil para aqueles que necessitam imprimir comprovantes complementares, como Documentos Tributários Eletrônicos (DTE), cupons ou mesmo imagens.
É possível utilizar a impressora térmica dos dispositivos Point Smart para realizar impressões de imagens em bitmap ou imagens personalizadas a partir de padrões chamados Custom Tags.
Para imprimir imagens em bitmap com a impressora do terminal Point, utilize a função print, da classe BluetoothPrinter do objeto MPManager. No campo imageToPrint, indique uma imagem em formato PNG ou JPEG, com codificação Base64 e um tamanho máximo de 1MB.
Veja abaixo um exemplo de como realizar a impressão de uma imagem.
val bitmapPrinter = MPManager.bitmapPrinter
val imageToPrint: Bitmap = bitmap // Obter a imagem Bitmap que será impressa
bitmapPrinter.print(imageToPrint) { response ->
response.doIfSuccess { printResult ->
// Tratar a impressão bem-sucedida
}.doIfError { error ->
// Tratar 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) {
// Tratar a impressão bem-sucedida
} else {
// Tratar o erro na operação de impressão
}
return Unit.INSTANCE;
};
bitmapPrinter.print(imageToPrint, callback);
Para realizar impressões em uma impressora externa, é necessário primeiro emparelhá-la com o terminal Point por meio do Bluetooth. Após o emparelhamento, utilize a função print, da classe BluetoothPrinter do objeto MPManager, para efetuar a impressão. No campo dataToPrint, informe a sequência de texto a ser impressa.
address.Veja abaixo um exemplo de como realizar a impressão.
val bluetoothPrinter = MPManager.bluetooth.printer
bluetoothPrinter.print(dataToPrint, address) { response ->
response
.doIfSuccess { printerResult ->
// Tratar o resultado bem-sucedido da impressão
when (printerResult) {
BluetoothPrinterResult.SUCCESS -> {
// Impressão realizada com sucesso
// ... Realizar ações adicionais, se necessário
}
BluetoothPrinterResult.NEED_SELECTION_DEVICE -> {
// Mais de um dispositivo emparelhado, é necessário especificar o endereço
// ... Realizar ações adicionais, se necessário
}
else -> { // Outros casos de resultado bem-sucedido }
}
}
}.doIfError { error ->
// Tratar o caso de erro, se necessário
}
}
final BluetoothPrinter bluetoothPrinter = MPManager.INSTANCE.getBluetooth().getPrinter();
final Function1<MPResponse<BluetoothPrinterResult>, Unit> callback =
(final MPResponse<BluetoothPrinterResult> response) -> {
if (response.getStatus() == ResponseStatus.SUCCESS) {
// Realizar ações adicionais, se necessário
} else {
// Tratar o caso de erro, se necessário
}
return Unit.INSTANCE;
};
bluetoothPrinter.print(dataToPrint, address, callback);
A resposta poderá trazer as seguintes informações:
| Campo | Tipo | Descrição |
dataToPrint | String | Sequência de texto que será impressa. |
address | String | O endereço da impressora Bluetooth que será utilizada. |
| Status | Descrição |
CONNECTION_FAILED | A conexão com a impressora falhou. |
ERROR_UNDEFINED | Ocorreu um erro de causa desconhecida. |
SUCCESS | A impressão foi concluída com êxito. |
NEED_SELECTION_DEVICE | É necessário especificar o endereço da impressora quando há múltiplos dispositivos pareados. |
ERROR_DATA_TO_PRINT_NULL | Os dados fornecidos para impressão são nulos. |
ERROR_PRINTER_NOT_FOUND | Nenhuma impressora pareada foi encontrada. |