Imprimir: CUPS

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

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

Con CUPS, añadir y compartir impresoras por la red resulta muy fácil.

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

    (Yo solo tengo impresoras HP, pero instala también gutenprint, foomatic-db, foomatic-db-engine, foomatic-db-nonfree, foomatic-filters, splix y ufr2 según tus necesidades)

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

  3. Añade CUPS (cupsd) a los demonios de /etc/rc.conf

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

  5. Inicia sesión

    • usuario: root
    • contraseña: la misma del sistema
  6. En Administration, entra en “Find New Printer”. Debería listar las impresoras conectadas; solo tienes que seleccionarlas.

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

    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 de forma remota, edita /etc/cups/cupsd.conf y cambia Listen localhost:631 por port 631.

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

Imprimir desde la línea de comandos

  1. Usa lpstat para ver 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 salió bien, pero el texto quedó algo grande y sin márgenes. Podemos configurar el tipo de papel, los márgenes y otras opciones desde la línea de comandos:

    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.

Imprimir desde VIM

Tras algunos años usando VIM como mi editor de textos habitual me di cuenta de que con él se puede hacer casi cualquier cosa, y una de ellas es imprimir textos. Incluso código con resaltado de sintaxis. A diferencia de GVim, que tiene un ‘Print’ en el menú File, en VIM solo se puede imprimir con comandos, que vale la pena memorizar:

  1. Abre un archivo de texto en VIM y usa este 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 la cabecera.

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

    :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 esta línea del archivo /etc/cups/cups-pdf.conf: Out /home/${USER}

Nota: si vas a imprimir código fuente, cambia antes el colorscheme al de por defecto.


Julio Batista Silva
Autores
Senior Cloud Developer

Soy un ingeniero informático brasileño radicado en Alemania, apasionado por la tecnología, la ciencia, la fotografía y los idiomas.

Llevo programando cerca de dos décadas, explorando desde apps móviles y desarrollo web hasta aprendizaje automático. Hoy me enfoco en SRE en la nube e ingeniería de datos.

Soy voluntario en las comunidades de open source y Python, ayudando a organizar PyCon DE y PyData Berlin, dando mentorías y contribuyendo con código y traducciones.

En mi blog comparto consejos de Linux, guías de configuración y notas personales que escribí como referencia futura. Espero que también sean útiles para otras personas. El contenido está disponible en varios idiomas.

Visita mi galería para ver algunas de mis fotografías.

Fuera del teclado, me encontrarás en conciertos, tocando el clarinete, en bicicleta, buceando o explorando nuevos lugares, culturas y cocinas.

¡Siempre feliz de conectar! 🙂

comments powered by Disqus