Instalar impressora no CUPS a partir de um arquivo PPD
Publicado por Gabriel Fernandes 24/10/2006
[ Hits: 34.424 ]
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
Mata usuários do FreeNX Server
Script para relatório de download de arquivos via Squid
Pegar MAC através do IP na rede interna
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
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Estou com sede em aprender sobre o nosso querido Linux. (1)
big linux sem audio como resolver (2)
Como faz para dar um update-grub por shell script [RESOLVIDO] (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta