Configurar impresiones
Con la función de impresiones, puedes gestionarlas directamente desde tu aplicación, obteniendo los documentos de la terminal asignada o enviándolos a una impresora Bluetooth.
A partir de esto, podrás imprimir el ticket de la compra e integrar impresiones personalizadas. Esta función puede ser útil para quienes necesitan imprimir comprobantes complementarios, como Documentos Tributarios Electrónicos (DTE), cupones o incluso imágenes.
Es posible utilizar la impresora térmica de los dispositivos Point Smart para realizar impresiones de imágenes en bitmap o imágenes personalizadas a partir de patrones llamados Custom Tags.
Para imprimir imágenes en bitmap con la impresora de la terminal Point, usa la función print de la clase BluetoothPrinter del objeto MPManager. En el campo imageToPrint, indica una imagen en formato PNG o JPEG, codificada en Base64 y con un tamaño máximo de 1 MB.
Observa a continuación un ejemplo de cómo realizar la impresión de una imagen.
val bitmapPrinter = MPManager.bitmapPrinter
val imageToPrint: Bitmap = bitmap // Obtener la imagen Bitmap que se imprimirá
bitmapPrinter.print(imageToPrint) { response ->
response.doIfSuccess { printResult ->
// Manejar la impresión exitosa
}.doIfError { error ->
// Manejar el error en la operación de impresión
}
}
final BitmapPrinter bitmapPrinter = MPManager.INSTANCE.getBitmapPrinter();
final Bitmap imageToPrint = bitmap // Obtener la imagen Bitmap que se imprimirá
final Function1<MPResponse<String>, Unit> callback = (final MPResponse<String> response) -> {
if (response.getStatus() == ResponseStatus.SUCCESS) {
// Manejar la impresión exitosa
} else {
// Manejar el error en la operación de impresión
}
return Unit.INSTANCE;
};
bitmapPrinter.print(imageToPrint, callback);
Para realizar impresiones en una impresora externa, primero debes emparejarla con la terminal Point mediante Bluetooth. Después del emparejamiento, usa la función print, de la clase BluetoothPrinter del objeto MPManager, para efectuar la impresión. En el campo dataToPrint, indica la cadena de texto que se imprimirá.
address.Observa a continuación un ejemplo de cómo realizar la impresión.
val bluetoothPrinter = MPManager.bluetooth.printer
bluetoothPrinter.print(dataToPrint, address) { response ->
response
.doIfSuccess { printerResult ->
// Manejar el resultado exitoso de la impresión
when (printerResult) {
BluetoothPrinterResult.SUCCESS -> {
// Impresión exitosa
// ... Realizar acciones adicionales si es necesario
}
BluetoothPrinterResult.NEED_SELECTION_DEVICE -> {
// Más de un dispositivo emparejado, se requiere especificar la dirección
// ... Realizar acciones adicionales si es necesario
}
else -> { // Otros casos de resultado exitoso }
}
}
}.doIfError { error ->
// Manejar el caso de error si es necesario
}
}
final BluetoothPrinter bluetoothPrinter = MPManager.INSTANCE.getBluetooth().getPrinter();
final Function1<MPResponse<BluetoothPrinterResult>, Unit> callback =
(final MPResponse<BluetoothPrinterResult> response) -> {
if (response.getStatus() == ResponseStatus.SUCCESS) {
// Realizar acciones adicionales si es necesario
} else {
// Manejar el caso de error si es necesario
}
return Unit.INSTANCE;
};
bluetoothPrinter.print(dataToPrint, address, callback);
La respuesta podrá traer la siguiente información:
| Campo | Tipo | Descripción |
dataToPrint | String | Cadena de texto que se imprimirá. |
address | String | La dirección de la impresora Bluetooth que se utilizará. |
| Estado | Descripción |
CONNECTION_FAILED | La conexión con la impresora falló. |
ERROR_UNDEFINED | Se produjo un error de causa desconocida. |
SUCCESS | La impresión se completó con éxito. |
NEED_SELECTION_DEVICE | Es necesario especificar la dirección de la impresora cuando hay múltiples dispositivos emparejados. |
ERROR_DATA_TO_PRINT_NULL | Los datos proporcionados para la impresión son nulos. |
ERROR_PRINTER_NOT_FOUND | No se encontró ninguna impresora emparejada. |