Cómo imprimir fotos

Tomar y compartir fotos es uno de los usos más populares de los dispositivos móviles. Si tu aplicación toma fotos, las muestra o permite que los usuarios compartan imágenes, deberías considerar habilitar la impresión de esas imágenes en tu aplicación. La biblioteca de compatibilidad de Android proporciona una práctica función que permite imprimir imágenes mediante una cantidad mínima de código y un conjunto simple de opciones de diseño de impresión.

En esta lección, se muestra cómo imprimir una imagen con la clase PrintHelper de la biblioteca de compatibilidad v4.

Cómo imprimir una imagen

La clase PrintHelper de la biblioteca de compatibilidad de Android proporciona una forma sencilla de imprimir imágenes. Tiene una sola opción de diseño, setScaleMode(), que te permite imprimir con una de dos opciones:

  • SCALE_MODE_FIT: Esta opción ajusta el tamaño de la imagen para que aparezca dentro del área de impresión de la página.
  • SCALE_MODE_FILL: Esta opción ajusta la imagen para que ocupe toda el área imprimible de la página. Si eliges esta opción, no se imprimirá parte de los bordes superior e inferior, o izquierdo y derecho de la imagen. Esta opción es el valor predeterminado si no estableces un modo de ajuste.

Ambas opciones de ajuste para setScaleMode() mantienen intacta la proporción existente de la imagen. En el siguiente ejemplo de código, se muestra cómo crear una instancia de la clase PrintHelper, configurar la opción de escalamiento e iniciar el proceso de impresión:

Kotlin

private fun doPhotoPrint() {
    activity?.also { context ->
        PrintHelper(context).apply {
            scaleMode = PrintHelper.SCALE_MODE_FIT
        }.also { printHelper ->
            val bitmap = BitmapFactory.decodeResource(resources, R.drawable.droids)
            printHelper.printBitmap("droids.jpg - test print", bitmap)
        }
    }
}

Java

private void doPhotoPrint() {
    PrintHelper photoPrinter = new PrintHelper(getActivity());
    photoPrinter.setScaleMode(PrintHelper.SCALE_MODE_FIT);
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
            R.drawable.droids);
    photoPrinter.printBitmap("droids.jpg - test print", bitmap);
}

Se puede llamar a este método como la acción de un elemento de menú. Ten en cuenta que los elementos de menú para las acciones que no siempre son compatibles (como la impresión) deben colocarse en el menú ampliado. Para obtener más información, consulta la guía de diseño Barra de acciones.

Una vez que se llama al método printBitmap(), tu aplicación ya no debe realizar ninguna otra acción. Aparecerá la interfaz de usuario de impresión de Android, que le permitirá al usuario seleccionar una impresora y las opciones de impresión. El usuario puede imprimir la imagen o cancelar la acción. Si el usuario elige imprimir la imagen, se crea un trabajo de impresión y aparece una notificación de impresión en la barra del sistema.

Si quieres incluir contenido adicional en tus impresiones más allá de una simple imagen, debes crear un documento impreso. Si deseas obtener información sobre cómo crear documentos para imprimir, consulta las lecciones Cómo imprimir un documento HTML o Cómo imprimir un documento personalizado.