El proyecto Linux Foundation

Esta página contiene los detalles de un proyecto de redacción técnica aceptado para la temporada de Documentos de Google.

Resumen del proyecto

Organización de código abierto:
Linux Foundation
Escritor técnico:
PIYUSHgoyal16
Nombre del proyecto:
Instructivo y lineamientos de diseño para controladores de impresoras y escáneres en aplicaciones de impresoras
Duración del proyecto:
Duración estándar (3 meses)

Project description

Descripción general

Los controladores de impresoras clásicos que constan de filtros específicos de impresoras y archivos PPD (Descripción de impresoras Postscript, describen las capacidades de las impresoras y los filtros que se deben llamar) que se deben colocar en ciertos directorios del sistema de archivos se reemplazan por las llamadas aplicaciones de impresora (la emulación de una impresora de red IPP).

La mayoría de las impresoras modernas de uso general son impresoras IPP que permiten la impresión sin controladores. Se anuncian a sí mismos a través de DNS-SD, los clientes pueden consultar la información de sus capacidades a través de solicitudes de IPP y usan formatos de datos estándar para los trabajos de impresión. Las impresoras que no proporcionan esta función. Por lo general, las impresoras heredadas o especiales necesitan un controlador de impresora.

Una aplicación de impresora es un daemon que detecta las impresoras compatibles y las anuncia en el localhost como una impresora IPP Everywhere. Las Aplicaciones de impresión contienen el software para imprimir trabajos entrantes en las impresoras compatibles, convirtiendo los datos al idioma nativo de la impresora, y proporcionan información sobre las capacidades de la impresora a los clientes a pedido. La aplicación de la impresora incluso tiene una interfaz de administración web, como una impresora de red real.

Como sabemos, Linux está migrando al empaquetado de zona de pruebas (por ejemplo, Snap) y la impresión también se está moviendo en esa dirección. En un paquete de zona de pruebas, no podemos modificar el contenido del directorio una vez que se ha compilado. Nuestro sistema ya no es modular. No podemos elegir qué paquete de controladores de impresora instalar. Las aplicaciones de impresoras abordan el problema de la modularidad y nos brindan la misma libertad que en el caso de los controladores de impresoras.

Los controladores de impresoras y escáneres en Snaps no son solo un requisito para un CUPS ajustado y una aplicación ajustada, sino que también funcionan en sistemas completamente clásicos, sino que, a diferencia de los controladores clásicos, son independientes de la distribución del SO. Haces un controlador de impresora Snap y funciona en todas las distribuciones de SO que se ejecutan Snap, sin necesidad de empaquetar controladores de impresora para cada una de las distribuciones (y versiones de ellas) de forma independiente y con el infierno de las dependencias. La otra ventaja es que el concepto antiguo de archivos PPD procedentes de impresoras PostScript se ha descontinuado. Además, al acoplar el sistema CUPS y el controlador de la impresora mediante una conexión IP en lugar de dejar archivos en el sistema CUPS, tanto el sistema CUPS como la aplicación de impresora pueden estar en paquetes separados de zona de pruebas.

Mi tarea será describir cómo diseñar los controladores de las impresoras y los escáneres para este tipo de embalaje y cómo empaquetarlos en Snaps. La intención es ayudar a cualquier persona que escriba controladores de impresoras o escáneres, en especial también de fabricantes de hardware, en el futuro para que lo haga de la manera correcta.

El flujo de trabajo de la aplicación de impresora se puede resumir en el diagrama de flujo dado:

La base para crear dichas aplicaciones de impresora y escáner es PAPPL, una biblioteca que proporciona la mayor funcionalidad para estas aplicaciones, pero también contenedores-filtros que contienen código que se utilizará para las aplicaciones de impresoras. El concepto aún está en desarrollo, principalmente en Google Summer of Code de este año, pero el 14 de septiembre, cuando comienza el período de redacción de la documentación, el período de codificación de GSoC ya finalizó y es entonces cuando OpenPrinting necesita el instructivo.

Plantilla para controladores de impresora Definir estructura para datos de TRABAJO

Declara un array de constantes para tamaños de medios

Declara funciones i) Devolución de llamada o init Una función booleana que acepta el nombre y los datos del controlador, entre otros, y configura los atributos del controlador de manera correspondiente. Si los detalles proporcionados son apropiados, el resultado es verdadero y falso en caso de error.

ii) imprimir la función booleana que acepta el trabajo, las opciones para el trabajo y el dispositivo Imprime un archivo y muestra verdadero en caso de éxito y falso si falla.

iii) Función booleana de representación que acepta un trabajo, opciones para el trabajo y el dispositivo Finaliza el trabajo y muestra verdadero en caso de éxito y falso si falla.

iv) La función rendpage que acepta el trabajo, las opciones del trabajo, el dispositivo y el número de página. Finaliza la página y muestra verdadero en caso de éxito y falso en caso de error.

v) La función booleana rstartjob que acepta el trabajo, las opciones para el trabajo y el dispositivo. Inicia el trabajo y muestra verdadero en caso de éxito y falso si falla.

vi) la función booleana rstartpage que acepta el trabajo, las opciones para el trabajo, el dispositivo y el número de página Inicia la página y muestra verdadero en caso de éxito y falso si se produce un error.

vii) rwrite función booleana que acepta trabajo, opciones para el trabajo, dispositivo, número de línea y el array de caracteres. Escribe la línea y muestra "true" en caso de éxito y "false" si se produce un error. viii) funciones opcionales como identificar (ayuda en la identificación de impresoras según la acción proporcionada), comprimir(comprimir una línea de gráficos), etcétera.