[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] [ next ]

Guia Foca GNU/Linux
Chapter 9 - 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á. .


9.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.


9.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:

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


9.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 seqüê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 compatível 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:

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

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).

OBS1: 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.

OBS2: Se tiver mais de uma impressora instalada na máquina, será necessário especificar a opção "-P impressora" para especificar qual impressora deseja imprimir/controlar.


9.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 :-)


9.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:


9.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 intençã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.


9.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 magicfilter, digite magicfilterconfig --force (lembre-se que a opção --force substitui qualquer configuração personalizada que tenha adicionado ao arquivo /etc/printcap).


9.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/epson9-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.


9.6 Impressão remota

Aqui será explicado como fazer seu sistema Linux atuar como um servidor de impressão para outras máquinas de sua rede.


9.6.1 Dando permissão para impresão remota via lpd/lprng

As máquinas autorizadas a usar a impressora local deverão ter seus nomes incluidos no arquivo /etc/hosts.lpd (para o daemon lpd padrão) ou /etc/lprng/lpd.perms (para o daemon lpd do pacote lprng).

O arquivo /etc/lprng/lpd.perms do lprng é mais configurável (e complexo), uma linha como:

     ACCEPT HOST=estacao1.dominio.org SERVICE=X,R,P,Q,M,C

aceitará os serviços (SERVICE) de conexão (X), lpr (R), impressão de trabalhos (P), lpq (Q), lprm (M) e lpc (C) da máquina estacao1.dominio.org. Veja os comentários neste arquivo para entender o funcionamento de suas opções ou a página de manual do lpd.perms.


9.6.2 Impressão via rlpr

O rlpr redireciona a impressão diretamente ao servidor de impressão. Sua vantagem é que a impressão é feita diretamente sem a necessidade de configurar um arquivo /etc/printcap e dispensar trabalhos adicionais de administração. Ele envia o trabalho de impressão diretamente ao daemon lpd na na porta 515 (a máquina deve estar configurada para aceitar conexões, veja Dando permissão para impresão remota via lpd/lprng, Section 9.6.1).

Para enviar o arquivo listagem.txt para a impressora hp no servidor impr.meudominio.org:

     rlpr -Himpr.meudominio.org -Php listagem.txt

A opção -H especifica o nome do servidor de impressão e -P o nome da impressora. Caso não tenha permissões para imprimir na impressora remota, uma mensagem será mostrada.


9.6.3 Impressão via printcap

Através deste método, a impressão será tratada através do spool remoto (lpd ou lprng) e enviada ao servidor de impressão. Para que isto funcione, utilize a seguinte configuração no seu arquivo /etc/printcap:

       lp:Impressora remota:\
      :sd=/var/spool/lpd/lp:\
      :rm=impr.meudominio.org:\
      :rp=hp:\
      :sh:

Então quando for executado o comando lpr na máquina remota, o lprng enviará a impressão para a impressora hp (rp=hp) na máquina impr.meudominio.org (rm=impr.meudominio.org).

Caso você tenha a opção de imprimir tanto para uma impressora local quando para uma remota, você poderá usar uma configuração como a seguinte:

     lp|hp|Impressora Local:\
      :lp=/dev/lp0:\
      :sd=/var/spool/lpd/hp:\
      :sh:\
      :pw#80:\
      :pl#66: \
      :px#1440:\
      :mx#0:\
      :if=/etc/magicfilter/dj930c-filter:\
      :af=/var/log/lp-acct:\
      :lf=/var/log/lp-errs:
     	
     hp-r|Impressora Remota:\
      :sd=/var/spool/lpd/lp:\
      :rm=impr.meudominio.org:\
      :rp=hp:\
      :sh:

Para selecionar qual impressora será usada, adicione a opção -Pimpressora na linha de comando dos utilitários lpr, lpq, lprm (por exemplo, lpr -Php-r relatorio.txt. Quando a opção -P é especificada, a impressora lp será usada por padrão.

OBS Lembre-se de reiniciar seu daemon de impressão toda vez que modificar o arquivo /etc/printcap.


9.6.4 Gerenciando impressão de máquinas Windows

Será necessário ter o pacote samba instalado e adicionar as seguintes linhas no seu arquivo /etc/samba/smb.conf:

     [hp-printer]
      path = /tmp
      printer name=HP DeskJet 690C
      printable = yes
      print command = lpr -r -h -P %p %s
      valid users = winuser winuser2
      create mode = 0700

O compartilhamento acima tornará disponível a impressora local "lp" as máquinas Windows com o nome "HP DeskJet 690C". Uma impressora alternativa pode ser especificada modificando a opção -P da linha de comando do lpr. Note que somente os usuários "winuser" e "winuser2" poderão usar esta impressora.

Agora será necessário instalar o driver desta impressora no Windows (HP 690C) e escolher impressora instalada via rede e seguir os demais passos de configuração.


[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ 19 ] [ 20 ] [ next ]

Guia Foca GNU/Linux

Versão 6.10 - Sunday, 03 de November de 2002
Gleydson Mazioli da Silva gleydson@cipsga.org.br