Instalar impressora no CUPS a partir de um arquivo PPD
Publicado por Gabriel Fernandes 24/10/2006
[ Hits: 34.474 ]
Homepage: http://cd2.com.br
Download Instala.ppd.hpijs.cups
Script para instalar impressoras no CUPS, usando o driver HPIJS (http://hplip.sourceforge.net/), a partir de um arquivo de definição da impressora (PPD).
Se tua impressora não estiver na lista de impressoras do CUPS, é possível ir no Linux Printing (http://www.linuxprinting.org) e baixar o arquivo de definição (.PPD) da mesma.
Este script instala o arquivo PPD e cria a fila de impressão no CUPS.
Importante: este script precisa, obrigatoriamente, do arquivo foomatic-rip (filtro universal). Ele precisa estar no mesmo diretório onde será executado o script.
Este script foi testado no Slackware 10.2, Red Hat Linux 9, RedHat WS 3 e Fedora Core 2.
#!/bin/bash #Criação de fila de impressão no CUPS via shell # #[2006-08-08] Criado por Gabriel Fernandes - <nayaless@terra.com.br> # #Script para instalação de arquivo PPD para impressoras que usam o driver/plugin HPIJS no CUPS #Este script foi criado em campo e na correria, pode ser melhorado, o que signifca que alterações #são bem vindas, desde que não seja retirado a referência ao autor. # ARGUMENTOS=$@ if [ "$USER" != 'root' ]; then echo "" echo "ATENÇÃO" echo "Este script somente pode ser executado com o usuário ROOT" echo "" exit 1 fi if [ -z $1 ]; then echo "" echo "ATENÇÃO" echo "Você deve infomar o nome da fila de impressao que será criada, o" echo "dispositivo e o arquivo PPD !!!" echo "Para ver os dispositivos disponíveis use o comando lpinfo -v." echo "Exemplo : $0 <nome_fila> <dispositivo> <arquivo_PPD>" echo "Exemplo para porta LPT1 e impressora Lexmark: " echo "$0 LEXMARK parallel:/dev/lp0 Lexmark-Optra_E321-hpijs.ppd" echo "Exemplo para porta IPP e impressora Lexmark: " echo "$0 LEXMARK ipp://host:631/printers/fila_impressao Lexmark-Optra_E321-hpijs.ppd" echo "" echo "Homologado para as versões:" echo "Slackware 10.2.0" echo "Red Hat Linux release 9 (Shrike)" echo "Fedora Core release 2 (Tettnang)" echo "Red Hat Enterprise Linux WS release 3 (Taroon Update 6)" echo "" exit 1 fi echo "" echo "Preparando para instalar ..." echo "" echo "Fila de Impressão $1 no dispositivo $2 com o arquivo de definição $3" echo "" echo "Homologado para as versões" echo "Slackware 10.2.0" echo "Red Hat Linux release 9 (Shrike)" echo "Fedora Core release 2 (Tettnang)" echo "Red Hat Enterprise Linux WS release 3 (Taroon Update 6)" echo "" echo "Procurando pelo driver HPIJS ..." echo "" LOCAL_DRIVER=`whereis hpijs | cut -d ' ' -f 2` LOCAL_FILTRO=`pwd` FILTRO="foomatic-rip" LOCAL_FILTRO="$LOCAL_FILTRO/$FILTRO" #Verifica a existencia do filtro universal foomatic-rip e não existindo tenta baixar if [ -e "$LOCAL_FILTRO" ] ; then echo "Usando filtro $LOCAL_FILTRO" else echo "Filtro Universal foomatic-rip não encontrado, tentando fazer download:" /usr/bin/wget -c http://www.linuxprinting.org/download.cgi?filename=foomatic-rip echo "Se o download foi completado com sucesso execute novamente $0 $@," echo "caso contrário faça download e execute $0 $@" echo "" exit 1 fi #Verifica a existencia do driver hpijs e existindo executa o processo if [ -e "$LOCAL_DRIVER" ] ; then echo "Usando driver $LOCAL_DRIVER" #Copiando arquivo de descrição do driver e da impressora, NÃO É O DRIVER !!! cp -rf $3 /usr/share/cups/model/$3 #Copiando o filtro universal foomatic-rip cp -rf $LOCAL_FILTRO /usr/lib/cups/filter/$FILTRO chmod a+r /usr/share/cups/model/$3 chmod a+rx /usr/lib/cups/filter/$FILTRO #Fazendo o daemon CUPS reconhecer o novo arquivo PPD killall -HUP cupsd #Aguardando o daemon subir sleep 2 #Adicionando fila de impressão /usr/sbin/lpadmin -p $1 -E -v $2 -m $3 -o PageSize=A4 #Listando a fila instalada echo "" echo "Instalado o dipositivo:" echo "" /usr/bin/lpstat -t | grep $1 echo "" echo "Instalação completa." echo "" echo "ATENÇÃO" echo "" echo "Para imprimir a partir do Windows em impressora com linguagem PCL" echo "é necessário editar o arquivo /etc/cups/mimes.types e retirar o " echo "comentário das linhas:" echo "" echo "application/vnd.cups-raw (string(0,<1B>E) + !string(2,<1B>%0B))" echo " string(0,<1B>@) " echo " (contains(0,128,<1B>%-12345X) + " echo " (contains(0,1024,"LANGUAGE=PCL") " echo " contains(0,1024,"LANGUAGE = PCL")))" echo "" echo "application/octet-stream" echo "" echo "E no arquivo /etc/cups/mimes.convs retirar o comentário da linha:" echo "" echo "application/octet-stream application/vnd.cups-raw 0 -" echo "" echo "FIM" exit 0 else echo "ATENÇÃO" echo "Não é possível continuar, pois o driver HPIJS não está instalado" exit 1 fi
Contar o número de arquivos e subdiretórios de um diretório
themepack2txz - Extrair arquivos themepack e criar um pacote TXZ com as imagens
Desligar o servidor quando todas as estações estiverem desligadas
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal
Calculando casas de um numero flutuante em c++[AJUDA] (1)
ocorreu um erro ao carregar o pacote (4)
Ubuntu 24.04.01 do nada as pastas estão abrindo o Analisador de arquiv... (1)