Fazendo o KLJetTool trabalhar

Manual do KLJetTool
Anterior |  | Próxima

# Capítulo 3. Fazendo o KLJetTool trabalhar

Algumas distribuições do Linux têm um subsistema de impressão egoísta que não respeita os arquivos PJL gerados pelo KLJetTool; ele tenta transformá-los usando filtros. Isto fará o KLJetTool funcionar mal.

Esta seção descreve os passos necessários para fazer o KLJetTool trabalhar sob versões do RedHat anteriores à 5.0. (O KLJetTool deve funcionar sem qualquer alteração em distribuições baseadas em RedHat Linux 5.0 ou maior). Eu acredito que passos similares devem ser necessários em outros sistemas. No entanto, as tarefas que precisam ser executadas não são difíceis. Tudo que precisa ser feito é ter certeza que o subsistema de impressão manda arquivos PJL para a impressora sem qualquer modificação.

Um sistema RedHat não reconhece a priori o formato PJL, e tenta fazer coisas feias com ele ao invés de mandá-lo direto para impressora; então precisamos ensiná-lo como lidar com o formato PJL. No entanto, antes que você faça as mudanças sugeridas aqui, teste se o KLJetTool realmente não funciona em seu sistema. Se funcionar, não há o que alterar.

Acredito que outras distribuições que usem subsistemas de impressão 'sofisticados' como o do RedHat devam ter problemas semelhantes.

Num sistema RedHat, o script `/var/spool/lpd/lp/filter` é invocado de `/etc/printcap`, a cada vez que algo é impresso via o comando `lpr`. O filtro aciona o programa `file` que analisa o arquivo a ser impresso, e `file` dirá ao script `filter` que tipo de documento é aquelo. Então, dependendo do tipo de documento, o programa certo é chamado para produzir saída num formato que a impressora pode entender. O programa `file` usa o programa `/etc/magic` para determinar o tipo de documento a ser impresso (exemplos: Postscript, dvi, texto, etc.)

Por exemplo, se eu imprimo um documento postscript, `arquivo.ps`, o utilitário `file` diz ao script `filter` que estamos lidando com um arquivo Postscript, e `filter` acionará o Ghostscript para converter `arquivo.ps` para PCL 5, uma linguagem que a minha LaserJet entende, antes de mandá-lo para a impressora.

Infelizmente um sistema RedHat não reconhece arquivos PJL e tenta fazer a coisa errada com eles ao invés de mandá-lo direto para a impressora.

Para fazer o KLJetTool funcionar em um sistema RedHat, precisamos fazer apenas duas coisas:

- Adicione uma linha ao arquivo `/etc/magic` de modo que o programa `file` reconheça corretamente um arquivo PJL como tal:

       # HP Printer Job Language, Bernd Wuebben (wuebben@math.cornell.edu)
       0	string		\033%-12345X	 HP PJL printer commands

- ensine o script /var/spool/lpd/lp/filter script a agir corretamente com arquivos PJL, adicionando duas linhas a ele:

          *pjl* )
                                                     startpnt="INPUT-to-prdata";;

  Se você der uma olhada no script de filtro, ficará claro onde adicionar as linhas (mais ou menos na linha 220 da versão 1 que eu tenho). Estas linhas instruem ao script deixar em paz os arquivos PJL e mandá-los direto para a impresssora.

Eu incluí uma cópia de meu script de filtragem, bem como meu arquivo `/etc/magic`. Você pode usá-los se tiver problemas ao tentar realizar as modificações sugeridas mais acima. Você deve ser capaz de encontrá-los no mesmo diretório em que você encontrou a documentação do KLJetTool.

Eu adoraria receber instruções sobre o que precisa ser feito para que o KLJetTool funcione em outros sistemas que usem subsistemas elaborados de filtragem de impressão.

Anterior | Principal | Próxima
Compilação e Instalação |  | Uso