Blog do Julio

Hacks, tutoriais e dicas

Impressão: CUPS

| Comments

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.


Links:

Comments