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, habilita la impresión de esas imágenes en tu aplicación. La biblioteca de compatibilidad de Android proporciona una práctica función para permitir la impresión de imágenes usando un 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. La clase tiene una sola opción de diseño, setScaleMode(), que te permite imprimir con una de estas dos opciones:

  • SCALE_MODE_FIT: este ajusta el tamaño de la imagen para que aparezca toda la imagen dentro del área de impresión de la página.
  • SCALE_MODE_FILL: este ajusta la imagen para que ocupe toda el área imprimible de la página. Eligiendo de imagen significa que parte de los bordes superior e inferior, o izquierdo y derecho de la imagen no se imprimen. 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. El siguiente ejemplo de código se muestra cómo crear una instancia de la clase PrintHelper, establecer la opción de escalamiento e inicia 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 son no siempre compatibles (como impresión) deben colocarse en el menú ampliado. Para ver más consulta la sección de información de la barra de acciones .

Después de completar el método printBitmap() llamada, no se requiere ninguna otra acción de tu aplicación. La interfaz de usuario de impresión de Android para que el usuario pueda seleccionar una impresora y las opciones de impresión. Luego, el usuario puede imprimir el o cancelar la acción. Si el usuario elige imprimir la imagen, se crea un trabajo de impresión y se crea una la notificación de impresión en la barra del sistema.

Si quieres incluir más contenido en tus impresiones además de una imagen, debes crear un documento impreso. Para obtener información sobre la creación de documentos para imprimir, consulta el Imprimir un documento HTML o Cómo imprimir un documento personalizado en las lecciones.