Impressão: CUPS

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 hightlight. 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
Julio Batista Silva
Data Engineer

I’m a computer engineer passionate about science, technology, photography, and languages. Currently working as a Data Engineer in Germany.

comments powered by Disqus