Este repositorio contiene una aplicación de impresora para imprimir en impresoras HP y Apollo compatibles con el conjunto de controladores HPLIP de HP.
Utiliza PAPPL para admitir la impresión IPP desde múltiples sistemas operativos. Además, utiliza los recursos de cups-filters 2.x (funciones de filtro en libcupsfilters, libppd) y pappl-retrofit (que encapsula los controladores CUPS clásicos en aplicaciones de impresora). Este trabajo (o ahora el código de pappl-retrofit) se deriva de la aplicación hp-printer.
El controlador de la impresora en sí y el software para comunicarse con el hardware de la impresora se obtienen del conjunto de controladores HPLIP (HP Linux Imaging and Printing), además de la información sobre los modelos de impresora compatibles y sus capacidades.
Sus contribuciones son bienvenidas. Publique problemas y solicitudes de extracción.
Nota: HP mantiene activamente HPLIP, agregan continuamente los modelos de impresoras más nuevos y adaptan el software a nuevos entornos/distribuciones de Linux. Por lo tanto, también sería la forma correcta si HP convirtiera HPLIP en una aplicación de impresora o al menos la ofreciera como alternativa al controlador CUPS/SANE clásico. Especialmente deberían crear una aplicación de impresora nativa, lo que significa que no utiliza PPD, filtros CUPS ni backends CUPS internamente. Además, sus servicios públicos deben independizarse de CUPS.
Para las impresoras PostScript, también puede utilizar la aplicación de impresora PostScript, especialmente si ya la tiene instalada para alguna impresora que no sea HP PostScript.
Compruebe también si su impresora es una impresora IPP sin controlador (AirPrint, Mopria, IPP Everywhere, Wi-Fi Direct Print, imprime desde teléfonos), ya que en este caso no necesita ninguna aplicación de impresora. La mayoría de las impresoras HP modernas, incluso los modelos más baratos, son impresoras IPP sin controlador. Incluso las impresoras que solo funcionan con USB pueden ser IPP sin controlador y, por lo general, puede usar IPP sin controlador a través de USB; pruebe primero con ipp-usb en estos casos.
Una aplicación de impresora que proporciona el controlador de impresora hpcups
y todos los PPD de HPLIP, y admite la impresión en la mayoría de las impresoras de HP y Apollo. Esto permite imprimir fácilmente en alta calidad, incluidas fotografías en papel fotográfico. También se incluye el filtro hpps
CUPS para impresión protegida con PIN en impresoras PostScript.
Las impresoras también se descubren con HPLIP. Para impresoras USB se utiliza el backend hp
CUPS y para impresoras de red la utilidad hp-probe
(encapsulada en un script para comportarse como un backend CUPS).
La comunicación con las impresoras se realiza mediante el backend hp
CUPS y por lo tanto (al menos en el caso de USB) se utiliza el protocolo de paquetes IEEE-1284.4 (protocolo 7/1/3 en USB) y no un protocolo de flujo simple (como el estándar Uso de backends CUPS y PAPPL). De esta manera uno debería poder imprimir y escanear simultáneamente, o al menos verificar el estado de la impresora mientras imprime. No todas las impresoras admiten este protocolo; en caso contrario, se utiliza un protocolo de transmisión estándar. También se admite cualquier otra funcionalidad especial que requiera el backend hp
. En la página de la interfaz web "Agregar impresora", en "Dispositivos", seleccione las entradas "HPLIP (HP)".
Tenga en cuenta que el backend hp
no permite el acceso bidireccional a la impresora. Si tiene una impresora PostScript y prefiere soporte para consulta remota de la configuración de accesorios de la impresora en lugar de impresión y escaneo simultáneos, los backends estándar de CUPS para impresoras USB y de red también están disponibles.
Si tiene una configuración de sistema inusual o un firewall personal, es posible que los servidores de HP no detecten su impresora. También en esta situación, los servidores estándar, incluida la entrada totalmente manual "Impresora de red" en combinación con el campo nombre de host/IP, pueden resultar útiles.
El uso de CUPS en lugar de los backends estándar de PAPPL ofrece soluciones extravagantes para las impresoras USB con problemas de compatibilidad que se utilizan (y son editables) y la salida se puede enviar a la impresora a través de IPP, IPPS (¡encriptada!) y LPD además del socket ( normalmente el puerto 9100). El backend SNMP se puede configurar (comunidad, alcance de dirección).
Los datos de entrada de imagen PWG Raster, Apple Raster o que se van a imprimir en una impresora que no sea PostScript no se convierten a PostScript o PDF, solo se convierten/escalan al espacio de color y la resolución requeridos y luego se introducen en el controlador hpcups
.
Para imprimir en impresoras que no son PostScript, los datos de entrada PDF y PostScript se procesan en datos rasterizados mediante Ghostscript. Ghostscript también se utiliza para convertir PDF a PostScript para impresoras PostScript.
La información sobre qué modelos de impresoras son compatibles y cuáles son sus capacidades se basa en los archivos PPD incluidos en HPLIP. Están empaquetados en Snap como un archivo comprimido.
Los atributos IPP del trabajo estándar se asignan a la configuración de opciones del controlador que mejor se adapta a ellos para que los usuarios puedan imprimir desde cualquier tipo de cliente (como, por ejemplo, un teléfono o dispositivo IoT) que solo admite atributos IPP estándar y no puede recuperar las opciones PPD. Las bandejas, los tamaños de medios, los tipos de medios y la impresión dúplex se pueden asignar fácilmente, pero cuando se trata de color y calidad, la cosa se vuelve más compleja, ya que las opciones relevantes difieren mucho en los archivos PPD. Aquí utilizamos un algoritmo que automáticamente (quien quiera editar a mano ~3000 archivos PPD para las tareas) encuentra el conjunto correcto de configuraciones de opciones para cada combinación de print-color-mode
( color
/ monochrome
), print-quality
( draft
/ normal
/ high
) y print-content-optimize
( auto
/ photo
/ graphics
/ text
/ text-and-graphics
) en el PPD de la impresora actual. Por lo tanto, tiene fácil acceso a toda la calidad o velocidad de su impresora sin necesidad de lidiar con la configuración de opciones específicas de la impresora (aún se puede acceder a las opciones originales a través de la interfaz de administración web).
El Snap de la aplicación de impresora HPLIP toma el código fuente de HPLIP del repositorio de paquetes de Debian en lugar de directamente de HP, ya que el paquete de Debian tiene ~80 parches que corrigen errores que se informan a HP pero el parche no se adoptó en sentido ascendente. Entonces, con Snap los usuarios deberían obtener la misma experiencia en confiabilidad y calidad que con el paquete Debian.
Soporte para descargar el complemento propietario de HPLIP a través de una página adicional en la interfaz web. Esto agrega soporte para algunas impresoras láser que necesitan que se cargue su firmware cada vez que se encienden o que usan ciertos formatos de datos de impresión propietarios. Esto funciona tanto en Snap como en la instalación clásica de la aplicación de impresora (debe ejecutarse como root; de lo contrario, solo se verifica el estado del complemento).
Soporte para escaneo en impresoras multifunción de HP. esto requiere soporte de escaneo en PAPPL (que logró un buen progreso en GSoC 2021).
Página de prueba en PDF, por ejemplo generada con el filtro bannertopdf.
Cadenas legibles por humanos para opciones de proveedores (Necesita soporte de PAPPL: Número 58: Soporte de localización)
Internacionalización/Localización (Necesita soporte de PAPPL: Número 58: Soporte de localización)
Verificación del nivel de tinta SNMP a través de la función ps_status() (Necesita soporte de PAPPL: Problema #83: CUPS realiza encuestas de nivel de tinta IPP y SNMP a través de servidores, PAPPL debería tener funciones para esto)
Opciones de compilación para cups-filters, para compilar sin libqpdf y/o sin libppd, el primero permitirá crear el Snap de esta aplicación de impresora sin descargar ni compilar QPDF.
Para ejecutar y utilizar esta aplicación de impresora, simplemente instálela desde Snap Store:
sudo snap install --edge hplip-printer-app
Luego siga las instrucciones a continuación para configurarlo.
Para construir el Snap usted mismo, en el directorio principal de este repositorio ejecute
snapcraft snap
Esto descargará todos los paquetes necesarios y creará la aplicación de impresora HPLIP. Tenga en cuenta que PAPPL (próximamente 1.0) y cups-filters (próximamente 2.0) se extraen directamente de sus repositorios GIT, ya que aún no hay versiones apropiadas. Esto también puede llevar al hecho de que esta aplicación de impresora de repente ya no se compilará.
Para instalar la ejecución Snap resultante
sudo snap install --dangerous hplip-printer-app_1.0_amd64.snap
La aplicación de impresora se iniciará automáticamente como un demonio de servidor.
Ingrese a la interfaz web
http://localhost:8000/
Utilice la interfaz web para agregar una impresora. Proporcione un nombre, seleccione la impresora descubierta, luego seleccione la marca y el modelo. También configure los accesorios instalados, los medios cargados y las opciones predeterminadas. Si la impresora es una impresora PostScript, la configuración de accesorios y los valores predeterminados de las opciones a menudo también pueden ser sondeados por la impresora.
Si la entrada de su impresora en la interfaz web tiene el comentario "requiere un complemento propietario", debe instalar el complemento de HP. Para ello, haga clic en el botón "Complemento" en esta entrada de la impresora o en el botón "Instalar complemento propietario" en "Otras configuraciones" en la página principal de la interfaz web y siga las instrucciones en pantalla.
Luego imprima archivos PDF, PostScript, JPEG, Apple Raster o PWG Raster con
hplip-printer-app FILE
o imprima con CUPS, CUPS (y también cups-browsed) descubra y trate las impresoras configuradas con esta aplicación de impresora como impresoras IPP sin controlador (IPP Everywhere y AirPrint).
Ver
hplip-printer-app --help
para más opciones.
Utilice el argumento "-o log-level=debug" para un registro detallado en la ventana de su terminal.
Puede agregar archivos a /var/snap/hplip-printer-app/common/usb/
para obtener reglas adicionales de peculiaridades USB. Edite los archivos existentes solo para pruebas rápidas, ya que se reemplazan en cada actualización del Snap (para introducir nuevas reglas).
Puede editar el archivo /var/snap/hplip-printer-app/common/cups/snmp.conf
para configurar la detección de impresoras de red SNMP.
También puede realizar una compilación "rápida y sucia" sin necesidad de instalar PAPPL, cups-filters 2.x y pappl-retrofit en su sistema. Necesita un directorio con la última instantánea GIT de PAPPL, la última instantánea GIT de cups-filters y la última instantánea GIT de pappl-retrofit (ramas maestras de cada uno). Todos deben compilarse ( ./autogen.sh; ./configure; make
), no es necesario instalarlos. Instale también los archivos de encabezado de todas las bibliotecas necesarias (instalar "libcups2-dev" debería ser suficiente).
En el directorio con hplip-printer-app.c ejecute la línea de comando
gcc -o hplip-printer-app hplip-printer-app.c $PAPPL_SRC/pappl/libpappl.a $CUPS_FILTERS_SRC/.libs/libppd.a $CUPS_FILTERS_SRC/.libs/libcupsfilters.a $PAPPL_RETROFIT_SRC/.libs/libpappl-retrofit.a -ldl -lpthread -lppd -lcups -lavahi-common -lavahi-client -lgnutls -ljpeg -lpng16 -ltiff -lz -lm -lusb-1.0 -lpam -lqpdf -lstdc++ -I. -I$PAPPL_SRC/pappl -I$CUPS_FILTERS_SRC/ppd -I$CUPS_FILTERS_SRC/cupsfilters -I$PAPPL_RETROFIT_SRC/pappl/retrofit -L$CUPS_FILTERS_SRC/.libs/ -L$PAPPL_RETROFIT_SRC/.libs/
También hay un Makefile, pero necesita que PAPPL, cups-filters 2.x y pappl-retrofit estén instalados en su sistema.
Correr
./hplip-printer-app --help
Cuando se ejecuta la versión no ajustada, de forma predeterminada, los archivos PPD se buscan en
/usr/share/ppd/
/usr/lib/cups/driver/
/var/lib/hplip-printer-app/ppd/
Puede configurar la variable de entorno PPD_PATHS
para buscar en otros lugares:
PPD_PATHS=/path/to/my/ppds:/my/second/place ./hplip-printer-app server
Simplemente coloque una lista separada por dos puntos de cualquier cantidad de rutas en la variable. Se recomienda crear un script contenedor.
Tenga en cuenta que sólo se consideran los archivos PPD para el controlador hpcups
de HPLIP; los demás archivos PPD se ignoran.
Las impresoras solo se descubren a través del backend hp
de HPLIP (USB) o la utilidad hp-probe
de HPLIP (red). Para este último, se incluye un script contenedor llamado HP
que hace que la utilidad se utilice como un backend de CUPS (solo modo de descubrimiento). Esto hace que solo se descubran las impresoras HP y Apollo. No se admiten impresoras de otros fabricantes.
Los trabajos se filtran a través de hpcups
y se envían a la impresora a través del backend hp
(tanto USB como de red).
Los backends estándar (no HPLIP) proporcionados como alternativa en esta aplicación de impresora son backends de CUPS y no de PAPPL, lo que significa que para las impresoras USB se utilizan las soluciones alternativas USB de CUPS para problemas de compatibilidad; las impresoras de red también se pueden usar con IPP, IPPS y Los protocolos LPD y el descubrimiento de impresoras SNMP son configurables.
Las reglas de USB Quirk en /usr/share/cups/usb
y el archivo /etc/cups/snmp.conf
se pueden editar si es necesario.
Asegúrese de tener instalado HPLIP y, si desea utilizar backends estándar, CUPS (al menos sus backends).
También necesita Ghostscript para imprimir trabajos PDF o PostScript.
Para acceder a la página de prueba testpage.ps
utilice la variable de entorno TESTPAGE_DIR:
TESTPAGE_DIR=`pwd` PPD_PATHS=/path/to/my/ppds:/my/second/place ./hplip-printer-app server
o para su propia creación de una página de prueba (PostScript, PDF, PNG, JPEG, Apple Raster, PWG Raster):
TESTPAGE=/path/to/my/testpage/my_testpage.ps PPD_PATHS=/path/to/my/ppds:/my/second/place ./hplip-printer-app server
La aplicación de impresora HPLIP tiene Copyright © 2020 de Till Kamppeter.
Se deriva de la aplicación de impresora HP PCL, un primer modelo funcional de una aplicación de impresora rasterizada que utiliza PAPPL. Está disponible aquí:
https://github.com/michaelrsweet/hp-printer-app
La aplicación de impresora HP PCL tiene Copyright © 2019-2020 de Michael R Sweet.
Este software tiene la licencia Apache versión 2.0 con una excepción para permitir la vinculación con el software GPL2/LGPL2 (como versiones anteriores de CUPS). Consulte los archivos "LICENCIA" y "AVISO" para obtener más información.