Impresión: CUPS

jul. 16, 2011·
Julio Batista Silva
Julio Batista Silva
· 3 min de lectura

CUPS es un sistema de impresión de código abierto mantenido por Apple y es, probablemente, el más simple para sistemas tipo Unix.

Con CUPS, añadir y compartir impresoras por la red se vuelve una tarea bastante sencilla.

  1. Descarga los paquetes con los programas y drivers necesarios.

    (Solo tengo impresoras HP aquí, pero instala también gutenprint, foomatic-db, foomatic-db-engine, foomatic-db-nonfree, foomatic-filters, splix y ufr2 según tu necesidad)

    julio@julio-acer ~  $  sudo pacman -S cups ghostscript gsfonts hpoj hplip cups-pdf
    
  2. Si tu impresora no está en la lista, descarga su archivo PPD de http://www.openprinting.org/printers a /usr/share/cups/model/

  3. Agrega CUPS (cupsd) a los daemons en /etc/rc.conf

    DAEMONS=(syslog-ng @network netfs crond alsa httpd mysqld dbus @ntpd sshd cupsd samba @subsonic oidentd)
    
  4. Inicia el daemon y entra en la interfaz web: http://localhost:631/

  5. Inicia sesión

    • usuario: root
    • contraseña: la misma del sistema
  6. En Administration, ve a “Find New Printer”. Debería listar las impresoras conectadas, basta con seleccionarlas de la lista.

    El paquete cups-pdf, que instalamos anteriormente permite usar una impresora virtual para generar PDFs.

    Para configurarlo selecciona:

    • Device: “CUPS-PDF (Virtual PDF Printer)”
    • Make/Manufacturer: Generic
    • Model/Driver: Generic Cups-PDF Printer
  7. Para acceder al servidor de impresión remotamente, edita el archivo /etc/cups/cupsd.conf y cambia Listen localhost:631 por port 631.

  8. Para permitir impresión por la red basta con editar el archivo de configuración de Samba.

Imprimir desde la línea de comandos

  1. Usa lpstat para verificar las impresoras disponibles:

    julio@julio-acer ~> lpstat -p -d
    printer CUPS-PDF is idle.  enabled since Thu 19 Jan 2012 05:47:16 PM BRST
    printer HP_1310 is idle.  enabled since Thu 19 Jan 2012 05:50:40 PM BRST
    no system default destination
    
  2. Define una impresora por defecto

    julio@julio-acer ~> lpoptions -d HP_psc_1310_series                                                   1
    auth-info-required=none copies=1 device-uri=hp:/usb/psc_1310_series?serial=BR5763H068O2 finishings=3 job-hold-until=no-hold job-priority=50 job-sheets=none,none marker-change-time=0 number-up=1 printer-commands=AutoConfigure,Clean,PrintSelfTestPage printer-info='HP psc 1310 series' printer-is-accepting-jobs=true printer-is-shared=false printer-location='quarto do julio' printer-make-and-model='HP PSC 1310 Series hpijs, 3.11.10' printer-state=3 printer-state-change-time=1326936293 printer-state-reasons=none printer-type=10522636 printer-uri-supported=ipp://localhost:631/printers/HP_psc_1310_series
    
    julio@julio-acer ~> lpstat -d
    system default destination: HP_psc_1310_series
    
  3. Podemos imprimir un archivo de texto con el comando lp.

    julio@julio-acer ~> lp teste.txt
    request id is HP_1310-1 (1 file(s))
    
  4. La impresión anterior funcionó, pero el texto salió un poco grande y sin margen. Podemos configurar el tipo de papel, los márgenes y otras opciones por la línea de comando:

    julio@julio-acer ~> lp -d HP_1310 -o media=a4 -o cpi=12 -o lpi=8 -o page-left=72 -o page-top=72 teste.txt
    request id is HP_1310-20 (1 file(s))
    

Consulta el manual para más opciones.

Imprimiendo desde VIM

Después de algunos años usando VIM como mi editor de textos por defecto, noté que se puede hacer casi cualquier cosa con él, imprimir textos es una de ellas. Incluso códigos con syntax highlighting. A diferencia de GVim, que tiene un ‘Print’ en el menú File, imprimir desde VIM solo puede hacerse por comandos, que vale la pena memorizar:

  1. Abre un archivo de texto en VIM y usa el siguiente comando para imprimirlo con la impresora por defecto:

    :hardcopy
    

    La impresión salió con márgenes y con el nombre del archivo y el número de página en el encabezado.

  2. También podemos usar otra impresora, como la CUPS-PDF que configuramos anteriormente

    :set printdevice=CUPS-PDF
    :set printoptions=paper:A4,syntax:y,wrap:y,number:y
    :hardcopy
    

Por defecto, CUPS-PDF guarda los archivos en /var/spool/cups-pdf/julio. Para cambiarlo, edita la siguiente línea en el archivo /etc/cups/cups-pdf.conf: Out /home/${USER}

Obs.: Si vas a imprimir código fuente, cambia primero el colorscheme al default.


Enlaces

Julio Batista Silva
Autores
Senior Cloud Developer
comments powered by Disqus