Impresión de comprobantes
ℹ️
Este proceso es obligatorio
La impresión del comprobante marca el cierre de una transacción y en esta sección se detallan los diferentes métodos que ofrece el SDK para imprimir un comprobante.
Requisitos
- Datos de la transacción
Paso a paso
- Instanciar el objeto
DevicePrintImpl
y pasarle el contexto. - Validar el estado de la impresora antes de usarla.
- Instanciar objeto
TextFormat
para el texto que se quiere imprimir. - Agregar las líneas a la cola de impresión con el método
addLine
. - Iniciar la impresión con el método
startPrint
dentro de unThread
Métodos disponibles
Método | Descripción |
---|---|
getStatus |
|
addDoubleColumnText | Agrega 2 columnas en el ticket. |
addLine | Agrega una línea en el ticket. |
addLinebreak | Agrega saltos de línea. |
addTripleColumnText | Agrega 3 columnas en el ticket. |
addImage | Agrega un bitmap en el ticket. |
startPrint | Inicia el proceso de impresión. |
Estos métodos posibilitan la creación de un formato de ticket personalizado, agregando los datos que se consideren necesarios. Sin embargo, a continuación se detallan los campos que son obligatorios por país:
Argentina
- Fecha y hora de la transacción
- Datos del comercio
- Nombre
- Dirección
- Identificación
- Monto de la transacción
- Últimos 4 dígitos de la tarjeta
México
- Fecha y hora de la transacción
- Nombre del adquirente
- Datos del comercio
- Nombre
- Dirección
- Teléfono
- Número de afiliación con la adquirencia
- Identificador de la transacción
- Marca y tipo de tarjeta
- Número de serie de la terminal
- Código de autorización
- Monto de la transacción
Ejemplo de implementación
private val devicePrintImpl = DevicePrintImpl(context)
private val resultObserver = Observer<Int> { result ->
Log.i("","resultado: $result")
}
devicePrintImpl.addLinebreak(1)
devicePrintImpl.addLine(
TextFormat(align = Align.CENTER, bold = true, font = 1),
"Texto a imprimir #1"
)
devicePrintImpl.addImage(getBitmap())
devicePrintImpl.addDoubleColumnText(
TextFormat(),
"Etiqueda:",
"Valor"
)
devicePrintImpl.addTripleColumnText(
TextFormat(),
"Columna 1",
"Columna 2",
"Columna 3"
)
//iniciando la impresión
try {
devicePrintImpl.startPrint()
Handler(Looper.getMainLooper()).post {
devicePrintImpl.result.observeForever(resultObserver)
}
} catch (e: Exception) {
e.printStackTrace()
}