Impressão: CUPS

jul. 16, 2011·
Julio Batista Silva
Julio Batista Silva
· 3 minutos de leitura
blog Tutorial

O CUPS é um sistema de impressão open source mantido pela Apple e é, provavelmente, o mais simples para sistemas Unix-like.

Com o CUPS, adicionar e compartilhar impressoras pela rede se torna uma tarefa bastante fácil.

  1. Baixe os pacotes com os programas e drivers necessários.

    (Só possuo impressoras HP aqui, mas instale também gutenprint, foomatic-db, foomatic-db-engine, foomatic-db-nonfree, foomatic-filters, splix e ufr2 conforme sua necessidade)

    julio@julio-acer ~  $  sudo pacman -S cups ghostscript gsfonts hpoj hplip cups-pdf
    
  2. Caso sua impressora não esteja listada, baixe seu arquivo PPD de <http://www.openprinting.org/printers para /usr/share/cups/model/>

  3. Adicione o CUPS (cupsd) aos daemons em /etc/rc.conf

    DAEMONS=(syslog-ng @network netfs crond alsa httpd mysqld dbus @ntpd sshd cupsd samba @subsonic oidentd)
    
  4. Inicie o daemon e entre na interface web: http://localhost:631/

  5. Faça login

    • usuário: root
    • senha: mesma senha do sistema
  6. Em Administration, vá em “Find New Printer”. Ele deverá listar as impressoras conectadas, basta selecioná-las na lista.

    O pacote cups-pdf, que instalamos anteriormente permite usar uma impressora virtual para gerar PDFs.

    Para configurá-lo selecione:

    • Device: “CUPS-PDF (Virtual PDF Printer)”
    • Make/Manufacturer: Generic
    • Model/Driver: Generic Cups-PDF Printer
  7. Para acessar o servidor de impressão remotamente, edite o arquivo /etc/cups/cupsd.conf e troque Listen localhost:631 por port 631.

  8. Para permitir impressão pela rede basta editar o arquivo de configuração do samba.

Imprimir pela linha de comando

  1. Use o lpstat para verificar as impressoras disponíveis:

    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. Defina uma impressora padrão

    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 um arquivo de texto com o comando lp.

    julio@julio-acer ~> lp teste.txt
    request id is HP_1310-1 (1 file(s))
    
  4. A impressão anterior ocorreu corretamente, porém o texto saiu um pouco grande e sem margem. Podemos configurar o tipo de papel, as margens e outras opções pela linha 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))
    

Consulte o manual para mais opções.

Imprimindo pelo VIM

Após alguns anos usando o VIM como meu editor de textos padrão pude perceber que tem como fazer quase qualquer coisa através dele, imprimir textos é uma delas. Inclusive códigos com syntax highlighting. Diferente do GVim, que possui um ‘Print’ no menu File, realizar uma impressão pelo VIM só pode ser feita por comandos, que valem a pena decorar:

  1. Abra um arquivo de texto no VIM e use o seguinte comando para imprimi-lo com a impressora padrão:

    :hardcopy
    

    A impressão saiu com margens e com o nome do arquivo e o número da página no cabeçalho.

  2. Também podemos utilizar outra impressora, como a CUPS-PDF que configuramos anteriormente

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

Por padrão o CUPS-PDF salva os arquivos em /var/spool/cups-pdf/julio. Para mudar isso, edite a seguinte linha no arquivo /etc/cups/cups-pdf.conf: Out /home/${USER}

Obs.: Se for imprimir código fonte, mude o colorscheme para o default antes.


Julio Batista Silva
Authors
Senior Cloud Developer

Sou um engenheiro de computação brasileiro baseado na Alemanha, apaixonado por tecnologia, ciência, fotografia e línguas.

Programo há cerca de duas décadas, explorando desde aplicativos móveis e desenvolvimento web até aprendizado de máquina. Atualmente, foco em SRE de nuvem e engenharia de dados.

Sou voluntário nas comunidades de open source e Python, ajudando a organizar a PyCon DE e a PyData Berlin, mentorando e contribuindo com código e traduções.

No meu blog, compartilho dicas de Linux, guias de configuração e notas pessoais que escrevo para referência futura. Espero que outras pessoas também as considerem úteis. O conteúdo está disponível em vários idiomas.

Visite minha galeria para ver algumas das minhas fotografias.

Longe do teclado, você vai me encontrar em shows, tocando clarinete, pedalando, mergulhando ou explorando novos lugares, culturas e culinárias.

Sempre feliz em me conectar! 🙂

comments powered by Disqus