Instalar impressora no CUPS a partir de um arquivo PPD
Publicado por Gabriel Fernandes 24/10/2006
[ Hits: 34.992 ]
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
DNSGEN - Gera e mantém configurações dos servidores DNS
Montando compartilhamentos windows
Testa DNS da sua conexão e reporta perda(s) de pacotes
Script para conversao de video compativel com PS3
Comparação entre os escalonadores BFQ e MQ-Deadline (acesso a disco) no Arch e Debian
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Converter os repositórios Debian para o novo formato com as chaves
Instalando Spotify no Debian 13
Realizar overclock no Miyoo Mini (plus ou normal)
Direcionar uma URL para Outra No Mikrotik (1)
Monitoramento pfsense com zabbix (4)
Erro na inicialização do Debian como resolver (5)
Dúvidas sobre a originalidade de conteúdos online (11)
linux mint reconhece microfone de lapela como fone de ouvido sem micro... (4)