Skip to content

Print From Android Intent


Print from Android APP

Make a intent to print in the printer number.


Print Image From Android Intent

Send image from your app to pos printer driver


Print image from Android APP

Make a intent to send image to printer

Implement this code to send image URI from your APP


    public void sendImageToPrinterNumber(Uri imageUri, int printerId) {
        Intent intentPrint = new Intent();
        intentPrint.setAction(Intent.ACTION_SEND);
        intentPrint.putExtra(Intent.EXTRA_STREAM, imageUri); // Enviar la URI de la imagen
        intentPrint.putExtra("device_id", String.valueOf(printerId)); // Enviar el ID de la impresora
        intentPrint.putExtra("direct", "1"); // Parametro para enviar directo a la impresora
        intentPrint.setType("image/*"); // MIME type para imágenes

        // Especificar el paquete de la app de destino
        intentPrint.setPackage("com.fidelier.posprinterdriver");

        try {
            this.startActivity(intentPrint);
        } catch (ActivityNotFoundException e) {
            Log.e("sendImageToPrinter", "Error: ", e);
            // Muestra un mensaje al usuario o maneja la excepción según sea necesario
        }
    }

To conver your drawable to URL use this code and functions


  Uri imageUri;

         imageUri = getImageUriFromDrawable(this.getApplicationContext(), R.drawable.pos_printer_driver_demo_big_qr);
public Uri getImageUriFromDrawable(Context context, int drawableId) {
        try {
            // Crear un archivo temporal
            File cacheFile = new File(context.getCacheDir(), "temp_image.png");
            cacheFile.createNewFile();

            // Obtener el drawable como Bitmap
            Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), drawableId);

            // Guardar el Bitmap en el archivo
            FileOutputStream outputStream = new FileOutputStream(cacheFile);
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream);
            outputStream.flush();
            outputStream.close();

            // Obtener el URI del archivo usando FileProvider
            return FileProvider.getUriForFile(context, "com.posprinterdrivertest.fidelier.posprinterdrivertest.fileprovider", cacheFile);
        } catch (IOException e) {
            Log.e("getImageUriFromDrawable", "Error al crear el archivo URI: " + e.getMessage(), e);
            return null;
        }
    }
  

Allow sha on path

res/xml/file_paths.xml

<paths> <cache-path name="cache" path="." /> <files-path name="files" path="." /> </paths>

Allow provider in manifest


    <provider
     android:name="androidx.core.content.FileProvider"
     android:authorities="com.posprinterdrivertest.fidelier.posprinterdrivertest.fileprovider"
     android:exported="false"
     android:grantUriPermissions="true">
             <meta-data
              android:name="android.support.FILE_PROVIDER_PATHS"
              android:resource="@xml/file_paths"/>
         </provider>