Hoje em dia, graças aos avanços do CUPS, configurar uma impressora no Linux é até mais fácil que no Windows. O KDE vem com o kaddprinterwizard, um utilitário bem fácil de usar e o kprinter, um servidor de impressão que unifica os drivers disponíveis e permite que as impressoras instaladas no kaddprinterwizard sejam usadas em qualquer programa do KDE.
Você pode abri-lo através da opção “Instalar uma Impressora (local ou de rede)”; dentro da seção “Suporte a Hardware” do Painel de Controle, ou chamá-lo diretamente pelo terminal. Ao contrário da maioria dos programas de configuração, você não precisa abrir o kaddprinterwizard como root, mas ele pedirá que você forneça a senha na hora de concluir a instalação da impressora.
Note que no Painel estão disponíveis também opções para compartilhar a impressora com a rede (as impressoras compartilhadas podem ser instaladas também nas máquinas Windows), rodar o printconf (um utilitário simples, que tenta detectar e configurar a impressora automaticamente) e também gerenciar as impressoras já instaladas.
Na tela principal do kaddprinterwizard estão disponíveis várias opções. Ele permite instalar tanto impressoras locais quanto impressoras de rede. Podem ser configuradas impressoras compartilhadas em máquinas Windows, em outras máquinas Linux da rede ou mesmo impressoras ligadas a um servidor de impressão.
Vamos a um resumo das opções:
- Local Printer (parallel, serial, USB): Esta opção é a mais usada, permite configurar uma impressora local, ligada na porta paralela ou USB. Na segunda tela ele mostra a porta e o modelo das impressoras encontradas e, em seguida, você pode escolher o driver, configurar o tipo de papel e qualidade de impressão. Em muitos casos serão oferecidas várias opções de drivers de impressão. A menos que você tenha alguma preferência por um driver em particular (sempre existem pequenas diferenças entre os recursos), o ideal é simplesmente aceitar a opção recomendada.
- SMB Shared Printer (Windows): Permite instalar uma impressora compartilhada no Windows ou em um servidor Linux rodando o Samba. Você deve especificar o endereço IP ou nome do servidor e o nome do compartilhamento.
- Remote Cups server (IPP/HTTP): Use esta opção para instalar uma impressora compartilhada em um servidor Linux através do Cups. Em geral os clientes configuram estas impressoras automaticamente, mas esta opção permite configurar manualmente caso a autodetecção falhe.
- Network Printer w/IPP: Esta opção permite acessar impressoras ligadas a servidores de impressão, como os Jet-directs da HP, ou impressoras laser com servidores de impressão embutidos (do tipo que é ligado diretamente no cabo de rede). Você precisa indicar a porta usada pelo servidor de impressão, que normalmente é a 9100.
Na segunda tela você deve indicar a localização da impressora. Se você está instalando uma impressora local, indique se a impressora está conectada na porta paralela ou em uma porta USB. Em geral ele acha a impressora sozinho e só pede sua confirmação. Caso você esteja instalando uma impressora de rede, ele pedirá o IP ou nome do servidor e o nome da impressora compartilhada.
O próximo passo é indicar a marca e o modelo da impressora ou, em outras palavras, indicar o driver de impressão que será usado.
Como de praxe, depois de instalar a impressora você pode também configurar o tipo de papel, qualidade de impressão e outras opções:
Existem vários conjuntos de drivers para impressora no Linux, como o Gimp-Print, o Hpijs e o Foomatic, que são desenvolvidos de forma infdependente. O kaddprinterwizard unifica todos estes drivers, permitindo configurar a impressora em um só lugar. Em muitos casos, a mesma impressora pode ter vários drivers disponíveis diferentes. Neste caso, ele pergunta qual você deseja usar, mas sempre colocando um deles, o mais bem testado ou com melhores recursos como “[recommended]“. Se por acaso este driver recomendado não funcionar corretamente ou não oferecer algum recurso de que você precisa, você pode voltar e testar os outros.
Os programas do KDE sempre usam o kprinter como padrão, mas outros programas vêm pré-configurados para usar o lpr ou outro sistema. Nestes casos a solução mais fácil é simplesmente configurar o programa para usar o kprinter como comando de impressão. Por exemplo, no Firefox, vá em “Arquivo > Imprimir > Propriedades” e altere o conteúdo do campo “Comando de impressão”, substituindo o comando original por “kprinter”:
Assim, ao imprimir qualquer coisa, o Firefox passa a chamar o menu de impressão do KDE ao invés de tentar imprimir diretamente:
Se você possui uma impressora multifuncional da HP, pode utilizar também o hp-toolbox, um utilitário desenvolvido pela própria HP, que permite ajustar várias opções relacionadas à qualidade de impressão, acompanhar o nível de tinta dos cartuchos, enviar faxes (nas multifuncionais com esta função), usar o scanner, entre outras opções. Ele inclui as mesmas funções do driver Windows:
Você pode instalar a multifuncional utilizando o próprio kaddprinterwizard, seguindo os passos que vimos, ou chamar o “hp-setup” através do terminal, como root. Ele é outro utilitário da HP, que tenta detectar a impressora automaticamente.
Além da HP, a Epson também desenvolve drivers Linux open-source para todas as impressoras. De uma forma geral, as impressoras dos dois fabricantes são muito bem suportadas no Linux, desde que você utilize uma distribuição recente, que venha com os drivers atualizados.
Mais uma opção de ferramenta de configuração é a interface de administração do Cups, que você acessa através do endereço “http:127.0.0.1:631”, utilizando qualquer navegador. Embora seja mais complicado de usar, ele acaba sendo uma opção interessante, pois pode ser encontrado em qualquer distribuição.
Compartilhando a impressora
O Cups possui um recurso nativo de compartilhamento de impressoras. Ele permite não apenas compartilhar impressoras com outras máquinas Linux, mas também com máquinas Windows da rede, através de um servidor unificado.
Você pode compartilhar a impressora de uma forma muito fácil usando a opção “Compartilhar Impressora com a rede”, dentro da seção de suporte a hardware, no Painel de Controle. Dentro do script, use a opção “Compartilhar”:
O que o script faz é, na verdade, uma simples alteração no arquivo “/etc/cups/cupsd.conf“, onde vai a configuração do servidor de impressão, avisando que a impressora deve ficar disponível para os outros micros da rede. Depois de usado o script, o arquivo ficará com o seguinte conteúdo:
Listen 631
Browsing On
BrowseAllow All
BrowseInterval 30
BrowseAddress @LOCAL
BrowseInterval 30
<Location />
Order allow,deny
Allow all
</Location>
<Location /printers>
Order allow,deny
Allow all
</Location>
<Location /admin>
Encryption Required
Order allow,deny
Allow localhost
</Location>
<Location /admin/conf>
AuthType Basic
Require user @SYSTEM
Order allow,deny
Allow localhost
</Location>
Veja que a seção “Location /printers”, onde vai a configuração de acesso às impressoras, contém a opção “Allow all”, que compartilha as impressoras instaladas na sua máquina com a rede.
Um recurso interessante oferecido pelo Cups é o autodiscover, que permite que as impressoras compartilhadas sejam localizadas automaticamente pelas outras máquinas Linux da rede. É um recurso bastante interessante: você dá boot com o CD do Kurumin, por exemplo, manda imprimir qualquer coisa e o trabalho é direcionado de forma automática para a impressora compartilhada no servidor.
Funciona mais ou menos assim: durante o boot, o cliente manda um broadcast para a rede, perguntando se alguém está compartilhando impressoras. O servidor responde que está compartilhando a “hp” e aproveita para transmitir detalhes, como o modelo e driver usado pela impressora, configuração de impressão, etc. Como ambos estão rodando o Cups, significa que o cliente usa o mesmo conjunto de drivers de impressão do servidor; isso permite que ele simplesmente configure a impressora usando as informações recebidas, sem precisar perguntar nada ao usuário. O pacote de broadcast é reenviado periodicamente pelo cliente, permitindo que impressoras recentemente compartilhadas sejam descobertas.
Caso existam mais impressoras na rede, você pode escolher qual usar nas preferências de impressão. É um recurso que funciona surpreendentemente bem.
Muitas distribuições (como o Ubuntu) vem com este recurso desativado. Ele também deixa de funcionar se você estiver com um firewall ativo na sua máquina, configurado para bloquear as portas UDP.
Caso você precise adicionar a impressora manualmente, abra o kaddprinterwizard e selecione a opção Remote CUPS Server. Forneça o endereço IP do servidor na rede local (ex: 192.168.0.10) e a porta onde o Cups está escutando, que por padrão é a 631.
Isso mostrará uma lista das impressoras disponíveis no servidor. Basta escolher a que será usada, apontar o driver que será usado e configurar as opções da impressora (papel, qualidade de impressão, etc.) para instalá-la.
Imprimindo a partir de máquinas Windows
As impressoras compartilhadas através do Cups também podem ser usadas nas máquinas com Windows. Ele (Windows) não suporta autodiscover, por isso é preciso adicionar a impressora manualmente pelo Painel de Controle > Impressoras e fornecer o CD com os drivers da impressora.
Vamos por passos. Comece abrindo o navegador e tentando acessar a página de administração do Cups no servidor. Acesse o https://192.168.0.10:631 substituindo o “192.168.0.10” pelo endereço IP correto do servidor. Acesse a opção “Manage Printers” e clique no link da impressora que será usada. Você verá um endereço, como “https://192.168.0.10:631/printers/hp”, na barra do navegador. Este é o endereço “completo” da sua impressora, que vamos usar na instalação.
De volta ao “Painel de Controle > Impressora”, clique no “Adicionar Impressora” e marque a opção “Impressora de rede“. Selecione a opção “Conectar-se a uma impressora na internet ou na intranet” e preencha o campo “URL” com o endereço completo da impressora (o “https://192.168.0.10:631/printers/hp”, que anotamos no passo acima).
Se você estiver usando o Windows 2000 sem o Service Pack 2 ou o XP sem atualizações, ele vai dar um erro estúpido, dizendo que não é possível se conectar à impressora, mas isso é esperado. Dê ok e volte à tela inicial. Marque agora a opção “Impressora local” e deixe marcado o “Detectar e instalar automaticamente impressora Plug and Play”. Ele dará outro erro, simplesmente confirme e diga que quer indicar a impressora manualmente. Você verá que, apesar dos erros, a impressora aparecerá disponível no final da lista. Basta selecioná-la e continuar com o processo normal de instalação da impressora, fornecendo o CD de drivers, etc.
O suporte a impressoras de rede compartilhadas no Cups foi incluído apenas a partir do Windows 2000. Para usar este recurso no Windows 95. 98 ou ME, você deve instalar o “Internet Printer Services”, uma atualização disponibilizada pela Microsoft, que você pode baixar em:
https://www.microsoft.com/windows98/downloads/contents/WUPreviews/IPP/Default.asp
Depois de reiniciar, acesse o Painel de Controle > Impressora, clique no “Adicionar Impressora” e marque a opção “Impressora de rede”. Coloque o endereço da impressora (https://192.168.0.10:631/printers/hp, por exemplo) no lugar do caminho para a impressora e forneça o driver.