Revista Do Linux
 
  
  
 

  Evento
  Serviço Público
  Fórum
  Especial
  Tutorial Foomatic
  Tutorial Cluster
  Tutorial Fax
  Tutorial FrameBuffer
  Tutorial Kiosk
  Software Eclipse
  Software Coranto
  Entrevista
  Estudo de Caso
  Internacional
  Distro
assinantes
 

Configurando impressoras com Foomatic 3.0

Deixando o usuário GNU/Linux com uma boa impressão!

Um grande problema na instalação de uma impressora é fazer o sistema de impressão (o spooler) usar os filtros certos para converter os dados a serem impressos ao formato que a impressora precisa. Além disso, há necessidade de acesso a todas as capacidades da impressora, como escolha de bandeja de papel, impressão nos dois lados da folha, diferentes resoluções, economia de toner.

Os aplicativos normalmente mandam os dados no formato PostScript ao spooler, e se a impressora não entender PostScript diretamente, o spooler chama o GhostScript que, junto com um driver de impressão, traduz os dados para o formato adequado para a impressora. As linhas de comando do GhostScript são complicadas, e muitos drivers não são bem documentados. Além disso, cada spooler é configurado de maneira diferente.

A maioria das distribuições GNU/Linux usa ferramentas próprias para configurar impressoras, que, muitas vezes, não suportam os modelos mais recentes e só disponibilizam as opções mais básicas do driver.

Para melhorar esta situação, Grant Taylor, autor do Printing HOW-TO, criou uma base de dados para coletar informações sobre como as impressoras funcionam com software livre e drivers livres, com suas linhas de comando e todas as opções disponíveis. Este sistema, chamado Foomatic e situado no linuxprinting.org [1], já tem mais de 1000 impressoras e mais de 200 drivers cadastrados. Com um filtro universal e um gerador de arquivos PPD (Postscript Printer Description, - descrição de impressora PostScript), é fácil criar filas de impressão para todos os spoolers livres com acesso a todas as opções do driver. O Foomatic já se tornou padrão nas principais distribuições GNU/Linux, e seu website tem mais de dez mil visitas diárias.

O Foomatic pode ser usado de duas maneiras:

  • Baixar os arquivos necessários do site linuxprinting.org e colocá-los no lugar certo manualmente.
  • Baixar os pacotes do Foomatic e usar suas ferramentas de linha de comando.

    A seguir, um passo a passo de como instalar uma impressora usando o primeiro método:

    Acesse o site www.linuxprinting.org, clique em Printer Listings na barra de navegação à esquerda da página principal, escolher o fabricante e modelo da sua impressora, o que o levará diretamente até a página do modelo indicado, ou indicar apenas o fabricante e obter uma listagem de todas as impressoras por ele produzidas (caso você não conheça o modelo exato).

    Dica: Se não encontrar o nome exato da sua impressora, escolha o nome mais próximo possível, de preferência um que seja diferente apenas nas letras de designação do modelo (como HP DeskJet 990Cxi e HP DeskJet 990C), já que na maioria das vezes todas as impressoras de uma linha usam o mesmo hardware básico. Mas esteja atento ao comprar uma impressora; a letra "L" muitas vezes significa Light, ou seja, a impressora tem capacidades reduzidas, especialmente a omissão da emulação PCL, o que faz com que muitos modelos não funcionem com software livre.

    Na página da sua impressora, leia o texto e verifique a qualidade do suporte a ela com Software Livre, que vai de Perfectly (funciona perfeitamente) a Paperweight (peso de papel = não funciona). Se a sua impressora for um Paperweight, pode parar a leitura por aqui, pois não há muito mais o que fazer (mas o site linuxprinting.org pode ajudar na compra de uma nova impressora [2]).

    Escolha um driver para a sua impressora

    Toda impressora que não é classificada como Paperweight tem uma lista de drivers que a suportam (Fig. 3). O driver que fornece a melhor qualidade de impressão é indicado como o driver recomendado (recommended).

    O driver está no seu sistema?

    Antes de escolher o driver você tem que determinar se ele está instalado em seu sistema. Se o Type (tipo) do driver for GhostScript, o driver tem que ser compilado dentro do binário do GhostScript. Para verificar se isso já foi feito pela sua distribuição digite:

    gs -h
    

    na linha de comando. Você deve ver mais ou menos o seguinte:

    GNU Ghostscript 6.53 (2002-02-05)
    [ ... ]
    Available devices:
       [ ... ]
       hl1250 gdi deskjet djet500 laserjet ljetplus ljet2p ljet3 ljet3d ljet4
       ljet4d lj5mono lj5gray paintjet pjetxl cdeskjet cdjcolor cdjmono
       [ ... ]
       hpdj890c hpdj1120c uniprint ijs cp50 declj250 dnj650c lj4dith lj250
       [ ... ]
    Search path:
       . : /usr/share/ghostscript/6.53/lib : /usr/share/ghostscript/6.53 :
       /usr/share/fonts/default/ghostscript :
       /usr/share/fonts/default/Type1 : /usr/share/ghostscript/fonts
    For more information, see /usr/share/doc/ghostscript-6.53/Use.htm.
    Report bugs to bug-gs@ghostscript.com, using the form in Bug-form.htm.
    

    Se estiver na lista Available devices, o driver está disponível no seu sistema. Se não, você pode baixar o driver em sua homepage oficial e compilar novamente o GhostScript com ele, ou instalar o ESP GhostScript 7.05.6 [3], que já contém todos os drivers do tipo GhostScript. Ao compilar o GhostScript, é importante fazê-lo encontrar as fontes. Ou você instala também o pacote ghostscript-fonts (também baixado no link [3]) ou especifica o lugar das fontes do seu antigo GhostScript usando a opção --with-fontpath no comando ./configure. Veja o Search path na saida de gs -h. O comnado listtag0 para saber quais os diretórios certos. Exemplo (digite os nomes de diretórios em só uma linha, sem espaços):

    ./configure -with-fontpath=/usr/share/fonts/default/ghostscript: \
                    /usr/share/fonts/default/Type1:       \
                    /usr/share/ghostscript/fonts          \
    make
    make install
    

    Se o seu driver for do tipo Filter (filtro), ele é um programa separado do GhostScript, que converte um formato de imagem genérico, produzido pelo GhostScript, para o formato da impressora (como o pnm2ppa), ou um plug-in para o GhostScript (como o hpijs). Os binários destes drivers devem estar em /usr/bin ou /usr/local/bin. Se o driver não estiver instalado em sua máquina, baixe e instale-o como descrito em sua documentação. Geralmente isso é fácil de fazer.

    Obtendo o arquivo PPD

    Agora, com o driver certo escolhido e instalado, você tem que baixar um arquivo PPD para seu conjunto de impressora e driver. Se estiver usando o driver recomendado para sua impressora, use o link Download PPD no cabeçalho da página de informações sobre a impressora (Fig. 2). Para outros drivers, veja os links download PPD na lista de drivers no fim da página (Fig. 3). Não confunda este arquivo com o driver. O driver foi o que você verificou/instalou no passo anterior. O arquivo PPD é só uma descrição das capacidades do driver/impressora e indica como o driver deve ser chamado para acessar estas capacidades.

    Criar uma fila de impressão

    Para saber como instalar uma fila de impressão com o spooler utilizado no seu sistema, siga o link do seu spooler no cabeçalho da página de informações sobre a impressora.

    Como atualmente o CUPS [4] é o spooler padrão na maioria das distribuições principais (Conectiva, Mandrake, SuSE, Red Hat, ...), apenas ele será abordado neste tutorial. Assumimos que CUPS foi instalado a partir de pacotes da sua própria distribuição. Se você instalou o CUPS a partir do código fonte, os diretórios aqui mencionados começam em /usr/local em vez de /usr.

    Logue-se como root, copie o arquivo PPD ao diretório /usr/share/cups/model e dê permissão de leitura do arquivo a todos os usuários do sistema:

    chmod a+r /usr/share/cups/model/HP-DeskJet_990C-hpijs.ppd
    

    Agora baixe o filtro universal foomatic-rip [5] e coloque-o no diretório /usr/lib/cups.filter. Dê permissão de leitura e execução do script a todos os usuários do sistema.

    chmod a+rx /usr/lib/cups/filter/foomatic-rip
    

    Verifique as definições no começo do foomatic-rip e adapte-as ao seu sistema. Se quiser, pode também baixar o foomatic-gswrapper [6] e colocá-lo em /usr/bin (também com permissões de leitura e execução a todos os usuários) para resolver alguns problemas do GhostScript, especialmente com arquivos PostScript produzidos no Windows.

    Reinicie o Daemon CUPS para fazê-lo reconhecer o novo arquivo PPD:

    killall -HUP cupsd
    

    Espere o daemon reiniciar (teste com o comando /lpstat -t) e gere a fila com o comando:

    lpadmin -p DJ990 -E -v usb:/dev/usb/lp0 -m HP-DeskJet_990C-hpijs.ppd -o PageSize=A4
    

    ou utilizando uma ferramenta gráfica como o KDE Printing Manager [7] ou a interface web do CUPS [8].

    Você pode agora ajustar as opções do driver com o botão Configure Printer na lista de impressoras (Printers na barra de navegação) na interface web ou com Configurar... no menu que aparece ao clicar com o botão direito no símbolo da impressora no KDE Printing Manager.

    É possível, na impressão, ter acesso às opções pelas interfaces gráficas para o CUPS, com o botão Propriedades no kprinter [7] (Fig. 5), Options no XPP [9], ou pela aba PPD no gtklp [10]. Recomenda-se usar um destes programas como comando de impressão (Printing command) em aplicativos (No KDE 2.x, o kprinter precisa a linha de comando kprinter --stdin para ser chamado a partir de outros aplicativos).

    Pare saber como acessar às opções pela linha de comando digite:

    echo x | lpr -P DJ990 -o docs
    

    e uma lista de opções será impressa. O echo é só para o lpr não esperar por dados na entrada padrão.

    O que vai acontecer no futuro?

    O desenvolvimento do Foomatic e do linuxprinting.org vai continuar. Os próximos passos são o suporte para tratar conflitos de opções (por exemplo, imprimir nos dois lados de transparências) e uma interface web pela qual visitantes do linuxprinting.org podem entrar com os dados das suas impressoras. Temos também em desenvolvimento uma seção FAQ [11] para os fórums [12] do linuxprinting.org.

    Sempre procuramos pessoas que queiram participar do projeto [13], seja adicionando novas impressoras à base de dados, fazendo uma interface gráfica para configuração e administração de impressoras com o Foomatic, internacionalização, mirrors,...

    Sobre o autor

    Till Kampetter entrou no mundo do software livre com contribuições ao X-CD-Roast e mais tarde com XPP [9] como seu primeiro próprio projeto, que o levou a ser contratado pela MandrakeSoft, em Paris, em Agosto 2000, onde é responsável pelo sistema de impressão em Mandrake Linux.

    Atualmente, sua principal função é ser o líder do projeto Foomatic e webmaster do site linuxprinting.org. Till melhorou o sistema substancialmente para que ele pudesse chegar a ser o padrão de integração de drivers para impressão nas principais distribuições GNU/Linux.

    Para saber mais:
    [1]www.linuxprinting.org
    [2]www.linuxprinting.org/suggested.html
    [3]www.cups.org/ghostscript.php
    [4]www.cups.org
    [5]www.linuxprinting.org/download.cgi?filename=foomatic-rip&show=0
    [6]www.linuxprinting.org/gswrapper.html
    [7]printing.kde.org
    [8]localhost:631/
    [9]cups.sourceforge.net/xpp
    [10]gtklp.sourceforge.net
    [11]www.linuxprinting.org/indexfaq.html
    [12]www.linuxprinting.org/newsportal
    [13]www.linuxprinting.org/contribute.html


    Till Kampetter - Till.kampetter@gmx.net

  • A Revista do Linux é editada pela Conectiva S/A
    Todos os Direitos Reservados.

    Política de Privacidade
    Anuncie na Revista do Linux