# Impresión de bitmaps

Esta guía demuestra cómo imprimir imágenes utilizando la impresora térmica del terminal. La biblioteca `PeripheralsLib` te permite enviar objetos `Bitmap` directamente a la impresora.

## Requisitos de la imagen

Para asegurar resultados de impresión consistentes en los diferentes modelos de terminales y evitar errores, cumple con las siguientes especificaciones de imagen:

* **Formato:** Bitmap (`android.graphics.Bitmap`)  
* **Anchura máxima:** 390 píxeles  
* **Esquema de color:** Blanco y negro (se recomienda profundidad de 1 bit)  
* **Compresión:** Se recomienda la compresión JPEG para el recurso de origen.

## Impresión básica

Si no necesitas rastrear el estado del trabajo de impresión, puedes usar el método simple `printBitmap`.

```java
// Assuming 'manager' is an initialized instance of PeripheralsManager
Bitmap myImage = BitmapFactory.decodeResource(getResources(), R.drawable.my_receipt_image);

manager.printBitmap(myImage);
```

## Impresión con callbacks

Para gestionar escenarios de éxito o fracaso (por ejemplo, falta de papel, sobrecalentamiento), utiliza el método que acepta un `PrintBmpCallback`. Este es el enfoque recomendado para las aplicaciones de producción para proporcionar feedback al usuario.

### Implementación

```java
manager.printBitmap(myBitmap, new PrintBmpCallback() {
    @Override
    public void onSuccess() {
        // Called when printing completes successfully
        Log.d("Printer", "Print finished successfully");
        runOnUiThread(() -> Toast.makeText(context, "Print Complete", Toast.LENGTH_SHORT).show());
    }

    @Override
    public void onError(String error) {
        // Called if an error occurs during printing
        Log.e("Printer", "Print failed: " + error);
        runOnUiThread(() -> Toast.makeText(context, "Error: " + error, Toast.LENGTH_LONG).show());
    }
});
```

### Métodos de callback

| Método | Descripción |
| :---- | :---- |
| `onSuccess()` | Se activa cuando el trabajo de impresión finaliza sin errores. |
| `onError(String error)` | Se activa si el trabajo de impresión falla. La cadena contiene la descripción del error. |