miércoles, 10 de julio de 2024

Trabajando con la clase Print Services y Attributes

En las lecciones anteriores hemos aprendido que el api Java 2D soporta impresión de paginas, proporciona diálogos para ver y seleccionar las impresoras disponibles, configurar paginas, numero de copias y otros atributos específicos de impresión. La clase Printing Services es otro componente clave de cualquier sistema de impresión.

La API Java Print Service (JPS) API extiende de Java 2D para ofrecer las siguientes funcionalidades:

  • La aplicación descubre impresoras que satisfacen sus necesidades consultando dinámicamente las capacidades de la impresora.
  • La aplicación puede extender la clase Attributes incluida en el API JPS
  • Aplicaciones de terceros pueden conectar sus propios servicios de impresión con la interfaz Service Provider Interface SPI, estos servicios propios pueden imprimir diferentes formatos incluidos Postscripts, PDF, y SVG.

La API Java Print Service consiste de 4 paquetes:

  • javax.print
  • javax.print.attribute
  • javax.print.event
  • javax.print.attribute
  • javax.print.attribute.standard
El paquete javax.print proporciona las principales clases e interfaces para la API Java Print Service API. Esto le permite a las aplicaciones cliente y servidor:
  • Descubrir y seleccionar servicios de impresión según sus capacidades.
  • Especificar el formato de los datos de impresión
  • Enviar trabajos de impresión al servicio que admita el tipo de documento que se va a imprimir.
Especificación del Tipo de Documento

La clase DocFlavor representa el formato del dato a imprimir, tales como JPEG o PostScript. La clase DocFlavor consiste de dos partes: un tipo MIME y un nombre de clase de representación.
Un tipo MIME describe el formato, y una clase de representación indica como el documento es entregado a la impresora o al flujo de salida. Una aplicación usa la clase DocFlavor y un conjunto de atributos para encontrar impresoras con capacidades especificadas por el conjunto de atributos.
Este código de ejemplo demuestra como obtener un arreglo de objetos StreamPrintServiceFactory que pueden retornar objetos StreamPrintService con capacidad de convertir una imagen GIF en un PostScript

Definición de Atributos
Los paquetes javax.print.attribute y javax.print.attribute.standard defined atributos de impresión que describen las capacidades de un servicio de impresión, especifican los requerimientos de un trabajo de impresión, y permiten seguir el progreso del trabajo de impresión.
Por ejemplo, si a ti te gustaría usar el formato de papel A4 e imprimir 3 copias de tu documento tendrías que crear un conjunto de los siguientes atributos implementando la interfaz PrintRequestAttributeSet


Entonces tu tienes que pasar el conjunto de atributos al trabajo de impresión mediante el método print junto con el DocFlavor

Buscando Servicios de Impresión
Una aplicación invoca el método estático de la clase abstracta PrintServiceLookup para localizar servicios de impresión que tengan la capacidad de satisfacer la petición de impresión. Por ejemplo, en orden de imprimir dos copias por ambos lados de un documento, la aplicación primero necesita encontrar impresoras que tengan la capacidad de imprimir ambos lados.

Usos comunes del API
En conclusión, el API Java Print Service ejecuta los siguientes pasos para procesar una petición de impresión.

  1. Elije un DocFlavor
  2. Crea un conjunto de atributos
  3. Localiza un servicio de impresión que pueda manejar la petición de impresión como fue especificada por el DocFlavor y el conjunto de atributo.
  4. Crea un objeto de la clase Doc encapsulando el DocFlavor y la data actual a imprimir.
  5. Obtener un objeto de la clase Print Job, representado por DocPrintJob, desde el servicio de impresión
  6. Llama al método print del objeto Print Job


No hay comentarios:

Publicar un comentario