:. Indique este site a um amigo...
 2998863 visitas desde 28/02/1999  |  Responsável: Carlos E. Morimoto
 :. Novo na área?! Leia nosso tutorial: Hardware para Iniciantes

Seções
Cursos OnLine :. Linux Intermediário
Relacionados

+ HOME
   :. Análises
   :. Artigos
   :. Cursos Online
       :. Hardware
       :. Redes
       :. Linux (foca)
       :. Gravação CDs
       :. Notebooks
       :. Setup
   :. Livros
      
:. Entendendo e
    Dominando o Linux 4.Ed
   :. Arquivo DDD
   :. Dicionário
   :. FAQ
   :. Notícias
   :. Dicas Linux
   :. Mini-Reviews
   :. Overclock
   :. Tutoriais

+ Publicações
   :. CD GDH
   :. CDs Mandrake
   :. CDs do Linux
   :. E-Books

+ Outros
   :. Drivers
   :. Fórum
   :. Humor
   :. Colunas
   :. Manuais
   :. Palm
   :. Quiz

+ Pesquisar no site:

+ Expediente

+ Doações

+ Comente esta
   Matéria

Dúvidas sobre
Linux?
Baixe o E-book
Entendendo e Dominando o Linux
de Carlos E. Morimoto
ou increva-se no
Curso de Linux
em SP


Invista em
conhecimento:
:.CD-ROM Guia do Hardware: Todos os e-books e uma cópia off-line de todo o site por R$ 21,00
:.Linux Mandrake 9.0 GDH, com manual em Português e aplicativos. 4 CDs por R$ 24,00
:. E-Books de Carlos E. Morimoto:
Manual de Hardware Completo 3ed.
Redes 3ed
Upgrade e Manutenção
Novas tecnologias 3Ed
Entendendo e Dominando o Linux
Dicionário Técnico de Informática. R$ 8,00

:. CDs do Linux:
Slackware 8.1 R$ 8,00
Red Hat 8.0 R$ 16,00
DemoLinux 3.0 R$ 8,00
Knoppix R$ 8,00
Peanut 9.1 R$ 8,00
FreeBSD 4.5 R$ 20,00
NetBSD 4.5 R$ 16,00
Libranet R$ 8,00
Debian 3.0 R$ 35,00
Definity R$ 8,00
E outros...

 

Dicas do dia : Receba as atualizações do Guia do Hardware todos os dias, direto no seu e-mail. Clique aqui para se inscrever.
 

Data: 22.03.2001  :. Em Reformulação!
Tipo: Curso
Assunto: Linux: Guia Foca GNU/Linux Nível Intermediário
Por: Gleydson Mazioli da Silva

 

   Capítulo 21: Impressão

Este capitulo descreve como imprimir em seu sistema GNU/Linux e as formas de impressão
via spool, rede, gráfica, etc.

Antes de seguir os passos descritos neste capítulo, tenha certeza que seu kernel foi compilado com o suporte a impressora paralela ativado, caso contrário até mesmo a impressão direta para a porta de impressora falhará. Para detalhes veja a Recompilando o Kernel, Seção 16.11 .

21.1 Portas de impressora

Uma porta de impressora é o local do sistema usado para se comunicar com a impressora. Em sistemas GNU/Linux, a porta de impressora é identificada como lp0, lp1, lp2 no diretório /dev, correspondendo respectivamente a LPT1, LPT2 e LPT3 no DOS e Windows. Recomendo que o suporte a porta paralela esteja compilado como módulo no kernel.

21.2 Imprimindo diretamente para a porta de impressora

Isto é feito direcionando a saída ou o texto com > diretamente para a porta de impressora no diretório /dev.

Supondo que você quer imprimir o texto contido do arquivo trabalho.txt e a porta de impressora em seu sistema é /dev/lp0, você pode usar os seguintes comandos:

  • cat trabalho.txt >/dev/lp0 - Direciona a saída do comando cat para a impressora.
  • cat /dev/lp0. Faz a mesma coisa que o acima.
  • cat -n trabalho.txt >/dev/lp0 - Numera as linhas durante a impressão.
  • head -n 30 trabalho.txt >/dev/lp0 - Imprime as 30 linhas iniciais do arquivo.
  • cat trabalho.txt|tee /dev/lp0 - Mostra o conteúdo do cat na tela e envia também para a impressora.

Os métodos acima servem somente para imprimir em modo texto (letras, números e caracteres semi-gráficos).

21.3 Imprimindo via spool

A impressão via spool tem por objetivo liberar logo o programa do serviço de impressão deixando um outro programa especifico tomar conta. Este programa é chamado de daemon de impressão, normalmente é o lpr ou o lprng (recomendado) em sistemas GNU/Linux.

Logo após receber o arquivo que será impresso, o programa de spool gera um arquivo temporário (normalmente localizado em /var/spool/lpd) que será colocado em fila para a impressão (um trabalho será impresso após o outro, em sequência). O arquivo temporário gerado pelo programa de spool é apagado logo após concluir a impressão.

Antes de se imprimir qualquer coisa usando os daemons de impressão, é preciso configurar os parâmetros de sua impressora no arquivo /etc/printcap. Um arquivo /etc/printcap para uma impressora local padrão se parece com o seguinte:


     lp|Impressora compativel com Linux
      :lp=/dev/lp0
      :sd=/var/spool/lpd/lp
      :af=/var/log/lp-acct
      :lf=/var/log/lp-errs
      :pl#66
      :pw#80
      :pc#150
      :mx#0
      :sh

É possível também compartilhar a impressora para a impressão em sistemas remotos, isto será visto em uma seção separada neste guia.

Usando os exemplos anteriores da seção Imprimindo diretamente para uma porta de impressora, vamos acelerar as coisas:

  • cat trabalho.txt |lpr - Direciona a saida do comando cat para o programa de spool lpr.
  • cat . Faz a mesma coisa que o acima.
  • cat -n trabalho.txt |lpr - Numera as linhas durante a impressão.
  • head -n 30 trabalho.txt |lpr - Imprime as 30 linhas iniciais do arquivo.

A fila de impressão pode ser controlada com os comandos:

  • lpq - Mostra os trabalhos de impressão atuais
  • lprm - Remove um trabalho de impressão

Ou usado o programa de administração lpc para gerenciar a fila de impressão (veja a página de manual do lpc ou digite ? ao iniciar o programa para detalhes).

OBS: Se a impressora não imprimir ou não for possível compartilhar a porta de impressora paralela com outros dispositivos (tal como o plip), verifique se o módulo parport_pc foi carregado e com os valores de irq e I/O corretos (por exemplo, modprobe parport_pc io=0x378 irq=7). Muitas vezes sua porta paralela pode funcionar sem problemas durante a impressão, mas se ao utilizar plip ocorrerem erros, a causa pode ser essa. Na distribuição Debian, use o programa modconf para configurar os valores permanentemente para o módulo parport_pc.

21.4 Impressão em modo gráfico

A impressão em modo gráfico requer que conheça a marca e modelo de sua impressora e os métodos usados para imprimir seus documentos. Este guia abordará somente a segunda recomendação :-)

21.4.1 Ghost Script

O método mais usados pelos aplicativos do GNU/Linux para a impressão de gráficos do Ghost Script. O Ghost Script (chamado de gs) é um interpretador do formato Pos Script (arquivos .ps) e pode enviar o resultado de processamento tanto para a tela como impressora. Ele está disponível para diversas plataformas e sistema operacionais além do GNU/Linux, inclusive o DOS, Windows, OS/2, etc.

O formato .ps esta se tornando uma padronização para a impressão de gráficos em GNU/Linux devido a boa qualidade da impressão, liberdade de configuração, gerenciamento de impressão feito pelo gs e por ser um formato universal, compatíveis com outros sistemas operacionais.

Para imprimir um documento via Ghost Script, você precisará do pacote gs, gsfonts (para a distribuição Debian e distribuições baseadas, ou outros de acordo com sua distribuição Linux) e suas dependências. A distribuição Debian vem com vários exemplos Pos Script no diretório /usr/share/doc/gs/example que são úteis para o aprendizado e testes com o Ghost Script.

Hora da diversão:

  • Copie os arquivos tiger.ps.gz e alphabet.ps.gz do diretório /usr/share/doc/gs/examples (sistemas Debian) para /tmp e descompacte-os com o comando gzip -d tiger.ps.gz e gzip -d alphabet.ps.gz. Se a sua distribuição não possui arquivos de exemplo ou você não encontra nenhuma referência de onde se localizam, mande um e-mail que os envio os 2 arquivos acima (são 32Kb).
  • O Ghost Script requer um monitor EGA, VGA ou superior para a visualização dos seus arquivos (não tenho certeza se ele funciona com monitores CGA ou Hércules Monocromático) .

    Para visualizar os arquivos na tela digite:

    
         gs tiger.ps 
         gs alphabet.ps
    

    Para sair do Ghost Script pressione CTRL+C. Neste ponto você deve ter visto um desenho de um tigre e (talvez) letras do alfabeto.

    Se o comando gs alphabet.ps mostrou somente uma tela em branco, você se esqueceu de instalar as fontes do Ghost Script (estão localizadas no pacote gsfonts na distribuição Debian).

  • Para imprimir o arquivo alphabet.ps use o comando:
    
         gs -q -dSAFER -dNOPAUSE -sDEVICE=epson -r240x72 -sPAPERSIZE=legal -sOutputFile=
    /dev/lp0 alphabet.ps

    O arquivo alphabet.ps deve ser impresso. Caso aparecerem mensagens como Error: /invalidfont in findfont no lugar das letras, você se esqueceu de instalar ou configurar as fontes do Ghost Script. Instale o pacote de fontes (gsfonts na Debian) ou verifique a documentação sobre como configurar as fontes.

    Cada uma das opções acima descrevem o seguinte:

    • -q, -dQUIET - Não mostra mensagens de inicialização do Ghost Script.
    • -dSAFER - É uma opção para ambientes seguros, pois desativa a operação de mudança de nome e deleção de arquivo e permite somente a abertura dos arquivos no modo somente leitura.
    • -dNOPAUSE - Desativa a pausa no final de cada página processada.
    • -sDEVICE=dispositivo - Dispositivo que receberá a saida do Ghost Script. Neste local pode ser especificada a marca o modelo de sua impressora ou um formato de arquivo diferente (como pcxmono, bmp256) para que o arquivo .ps seja convertido para o formato designado.

      Para detalhes sobre os dispositivos disponíveis em seu Ghost Script, digite gs --help|less ou veja a página de manual. Normalmente os nomes de impressoras e modelos são concatenados, por exemplo, bjc600 para a impressora Canon BJC 600, epson para impressoras padrão epson, stcolor para Epson Stylus color, etc.

      O Hardware-HOWTO contém referências sobre hardware suportados pelo GNU/Linux, tal como impressoras e sua leitura pode ser útil.

    • -rx - Define a resolução de impressão (em dpi) Horizontal e Vertical. Os valores dependem de sua impressora.
    • -sPAPERSIZE=tamanho - Tamanho do papel. Podem ser usados a4, legal, letter, etc. Veja a página de manual do gs para ver os outros tipos suportados e suas medidas.
    • -sOutputFile=dispositivo - Dispositivo que receberá a saida de processamento do gs. Você pode especificar
      • arquivo.epson - Nome do arquivo que receberá todo o resultado do processamento. O arquivo.epson terá toda a impressão codificada no formato entendido por impressoras epson e poderá ser impresso com o comando cat arquivo.epson >/dev/lp0.

        Uma curiosidade útil: É possível imprimir este arquivo em outros sistemas operacionais, tal como o DOS digitando: copy /b arquivo.eps prn (lembre-se que o DOS tem um limite de 8 letras no nome do arquivo e 3 na extensão. Você deve estar compreendendo a flexibilidade que o GNU/Linux e suas ferramentas permitem, isso é só o começo.

      • impressao%d.epson - Nome do arquivo que receberá o resultado do processamento. Cada página será gravada em arquivos separados como impressao1.epson,
        impressao2.epson.

        Os arquivos podem ser impressos usando os mesmos métodos acima.

      • /dev/lp0 para uma impressora em /dev/lp0
      • - para redirecionar a saída de processamento do gs para a saída padrão. É útil para usar o gs com pipes |.
      • \|lpr - Envia a saída do Ghost Script para o daemon de impressão. O objetivo é deixar a impressão mais rápida.

      Se você é curioso ou não esta satisfeito com as opções mostradas acima, veja a página de manual do gs.

21.5 Magic Filter

O Magic Filter é um filtro de impressão inteligente. Ele funciona acionado pelo spool de impressão (mais especificamente o arquivo /etc/printcap) e permite identificar e imprimir arquivos de diversos tipos diretamente através do comando lpr arquivo.

É um ótimo programa e ALTAMENTE RECOMENDADO se você deseja apenas clicar no botão imprimir e deixar os programas fazerem o resto :-) A inteção do programa é justamente automatizar os trabalhos de impressão e spool.

A maioria dos programas para ambiente gráfico X11, incluindo o Netscape, Word Perfect, Gimp e Star Office trabalham nativamente com o magicfilter.

21.5.1 Instalação e configuração do Magic Filter

O Magic Filter é encontrado no pacote magicfilter da distribuição Debian e baseadas.

Sua configuração pode ser feita com o programa magicfilterconfig que torna o processo de configuração rápido e fácil para quem não conhece a sintaxe do arquivo /etc/printcap ou não tem muitas exigências sobre a configuração detalhada da impressora.

Após instalar o magicfilter reinicie o daemon de impressão (se estiver usando a Debian, entre no diretório /etc/init.d e como usuário root digite ./lpr restart ou ./lprng restart).

Para testar o funcionamento do magicfilter, digite lpr alphabet.ps e lpr tiger.ps, os arquivos serão enviados para o magicfilter que identificará o arquivo como Pos Script, executará o Ghost Script e retornará o resultado do processamento para o daemon de impressão. O resultado será visto na impressora.

Se tiver problemas, verifique se a configuração feita com o magicfilterconfig está correta. Caso precise re-configurar o magicfilger, digite magicfilterconfig --fource (lembre-se que a
opção --force substitui qualquer configuração personalizada que tenha adicionado ao arquivo /etc/printcap).

21.5.2 Outros detalhes técnicos sobre o Magic Filter

Durante a configuração do magicfilter, a seguinte linha é adicionada ao arquivo /etc/printcap:


     :if=/etc/magicfilter/epson9-filter

Não tenho nenhum contrato de divulgação com a epson :-) estou usando esta marca de impressora porque é a mais tradicional e facilmente encontrada. A linha que começa com :if no magicfilter identifica um arquivo de filtro de impressão.

O arquivo /etc/magicfilter/epcon9-filter é criado usando o formato do magicfilter, e não é difícil entender seu conteúdo e fazer algumas modificações:


     #! /usr/sbin/magicfilter
     #
     # Magic filter setup file for 9-pin Epson (or compatible) printers
     #
     # This file is in the public domain.
     #
     # This file has been automatically adapted to your system.
     #
     # wild guess: native control codes start with ESC
     0       \033            cat
     
     # PostScript
     0 %! filter /usr/bin/gs -q -dSAFER -dNOPAUSE -r120x72 -sDEVICE=epson -sOutputFile=- - -c quit 
     0 \004%! filter    /usr/bin/gs -q -dSAFER -dNOPAUSE -r120x72 -sDEVICE=epson -sOutputFile=- -
-c quit # PDF 0 %PDF fpipe /usr/bin/gs -q -dSAFER -dNOPAUSE -r120x72 -sDEVICE=epson -sOutputFile=-
$FILE -c quit # TeX DVI 0 \367\002 fpipe /usr/bin/dvips -X 120 -Y 72 -R -q -f # compress'd data 0 \037\235 pipe /bin/gzip -cdq # packed, gzipped, frozen and SCO LZH data 0 \037\036 pipe /bin/gzip -cdq 0 \037\213 pipe /bin/gzip -cdq 0 \037\236 pipe /bin/gzip -cdq 0 \037\240 pipe /bin/gzip -cdq 0 BZh pipe /usr/bin/bzip2 -cdq # troff documents 0 .\?\?\040 fpipe `/usr/bin/grog -Tps $FILE` 0 .\\\" fpipe `/usr/bin/grog -Tps $FILE` 0 '\\\" fpipe `/usr/bin/grog -Tps $FILE` 0 '.\\\" fpipe `/usr/bin/grog -Tps $FILE` 0 \\\" fpipe `/usr/bin/grog -Tps $FILE`

Você deve ter notado que para cada tipo de arquivo existe o respectivo programa que é executado, basta você modificar as opções usadas nos programas neste arquivo (como faria na linha de comando) para afetar o comportamento da impressão.

Por exemplo, modificando a resolução para -r240x72 no processamento de arquivos Pos Script (gs), a impressora passará a usar esta resolução.


[ anterior ] [ Resumo ] [ Nota de Copyright ] [ Conteúdo ] [ próximo ]

Guia Foca GNU/Linux
Versão 4.70 - 6 novembro 2000
Gleydson Mazioli da Silva


 

© 1999 - 2002 :. Todos os direitos reservados :. Carlos E. Morimoto
Melhor visualizado em qualquer browser. Você escolhe o que usar, não nós :-)