Você está na página 1de 10

CUPS + Jasmine (gerenciador de impresses e relatrios de impresso)

Autor: Jos Rodrigues Filho <suporte at joserodriguesfilho.com> Data: 08/10/2010 Ambiente utilizado Primeiramente ditarei o ambiente que utilizo e que est em funcionamento: Ubuntu Server 8.04 necessrio para nossos testes uma impressora USB, PARALELA ou de REDE. No exemplo a seguir tenho uma HP LaserJet Professional P1102w, a nova HP Laser com rede sem fio, nela est configurado o IP 172.16.1.66.

Instalando: $ sudo aptitude update $ sudo aptitude install vim apache2 build-essential cupsys cups-pdf cupsys-driver-gutenprint $ sudo vim /etc/cups/cupsd.conf Altere a linha 17: Listen localhost:631 Para: Listen 631 Para quem no sabe fazer o vim aparecer numerao simples, digite a tecla ESC e em seguida: :set nu Vamos agora dar permisso para acesso ao CUPS:

$ sudo vi /etc/cups/cupsd.conf E altere as linhas conforme abaixo: # Show shared printers on the local network. Browsing On DefaultAuthType Basic <Location /> Allow From 172.16.1.54 Allow all </Location> E para termos acesso s paginas de administrao: # Restrict access to the server... <Location /> Order allow,deny Allow From 172.16.1.54 </Location> # Restrict access to the admin pages... <Location /admin> Allow From 172.16.1.54 Allow all </Location> Agora reinicie o servio: $ sudo invoke-rc.d cupsys restart Lembrando que o IP acima 172.16.1.54 para ter acesso apenas da minha rede, altere conforme o IP da sua rede.

Samba Aqui fica a parte muito importante, geralmente muitas pessoas recebem um erro de "Acesso Negado: No foi possvel estabelecer uma conexo". Elas conseguem instalar a impressora, mas no possvel imprimir por acesso negado. Vamos resolver esse probleminha. Instalando o Samba: $ sudo aptitude install samba $ sudo mkdir /home/troca $ sudo chmod 777 /home/troca $ sudo vim /etc/samba/smb.conf Criando uma configurao simples no Samba para o funcionamento correto da impressora: $ sudo vim /etc/samba/smb.conf [global] workgroup = Servidor de Impressao netbios name = printserver security = share [troca] comment = Troca de Arquivos path = /home/troca public = yes

browseable = yes writable = yes read only = no create mask = 0700 directory mask = 0700 vfs object = audit [printers] comment = All Printers path = /var/spool/samba printable = Yes browseable = yes guest ok = yes plublic = yes writable = no load printers = yes cups options = raw use client driver = yes Reinicie o Samba: $ sudo invoke-rc.d samba restart

Jasmine + impressora de testes (economia de papel) Instale os pacotes abaixo: $ sudo aptitude install php5 mysql-server-5.0 php5-mysql libdbd-mysql-perl python python-imaging Agora no site http://jasmine.berlios.de/dokuwiki/doku.php, efetue o download dos arquivos: JASmine-MySQL JASmine-Backend JASmine-Web $ sudo wget http://nayco3.free.fr/Jasmine/Releases/0.0.3/JASmine-MySQL-0.0.3.tar.bz2 $ sudo wget http://nayco3.free.fr/Jasmine/Releases/0.0.3/JASmine-Backend-0.0.3.tar.bz2 $ sudo wget http://nayco3.free.fr/Jasmine/Releases/0.0.3/JASmine-Web-0.0.3.tar.bz2 A primeira etapa criar o banco que vai armazenar os dados de impresso. $ sudo mysql -u root -p password: ***** mysql> CREATE DATABASE print; mysql> exit Agora vamos utilizar o script contido no arquivo JASmine-MySQL. $ sudo tar -jxvf JASmine-MySQL-0.0.3.tar.bz2 $ cd JASmine-MySQL-0.0.3 $ sudo mysql -u root -p print < jasmine.sql Crie um usurio no MySQL para gerenciar o banco de impresso. $ sudo mysql -u root -p mysql> GRANT ALL ON print.* TO jasmine@localhost identified by 'senha'; mysql> FLUSH PRIVILEGES;

mysql> exit Saia da pasta onde est agora: $ cd .. Dentro do JASmine-Backend existem os programas auxiliares que iro monitorar as impresses e gerar os dados a serem salvos no banco. Na pasta do JASmine-Backend existe o pkpgcounter que ser instalado com o auxlio do Python. $ sudo tar -jxvf JASmine-Backend-0.0.3.tar.bz2 $ cd JASmine-Backend-0.0.3 $ sudo tar -zxvf pkpgcounter-2.10.tar.gz $ cd pkpgcounter-2.10 $ sudo python setup.py install Sada da pasta onde est agora: $ cd .. Na pasta raiz do JASmine-Backend existe um script em Perl chamado jasmine que dever ser copiado para dentro do CUPS. $ sudo cp jasmine /usr/lib/cups/backend/ $ cd /usr/lib/cups/backend $ sudo chmod 755 jasmine $ sudo chown root jasmine Agora temos que editar nosso script para colocar as informaes referentes ao banco de dados, localizados nas linhas 28, 29, 30, 31: $ sudo vim jasmine my $DBhost="localhost"; my $DBlogin="jasmine"; my $DBpassword="senha"; my $Dbdatabase="print"; Existe tambm na linha 41 do script informando que o mesmo est no modo debug. Altere esta linha para: my $Debug_Mode=0; Reinicie o CUPS e vamos a etapa final. $ sudo invoke-rc.d cupsys restart O JASmine-Web a pgina que coleta as informaes e as exibe na Web, volte para pasta onde voc baixou os arquivos. $ sudo tar -jxvf JASmine-Web-0.0.3.tar.bz2 $ cd JASmine-Web-0.0.3/ $ sudo mkdir /var/www/jasmine $ sudo cp -r * /var/www/jasmine Neste momento iremos editar o arquivo com as configuraes de acesso a banco. $ cd /var/www/jasmine $ sudo cp config.php.dist config.php $ sudo vim config.php // Database vars $DB_host="localhost";

$DB_login="jasmine"; $DB_pass="senha"; $DB_db="print"; Existe uma configurao para testes de impresso que o JASmine fornece para que possamos visualizar os resultados sem termos que gastar toner e papel. Para isso voc entra na pasta JASmine-Backend-0.0.3 e copia o arquivo dummy para o diretrio /usr/lib/cups/backend. $ sudo cp dummy /usr/lib/cups/backend $ sudo chmod 755 /usr/lib/cups/backend/dummy $ sudo chown root /usr/lib/cups/backend/dummy Feito reinicie o CUPS com o comando: $ sudo invoke-rc.d cupsys restart Edite o arquivo jasmine dentro de: $ sudo vim /usr/lib/cups/backend/jasmine Altere a linha 67 de: my $lockfile = $backends_dir."/".$me.".lock"; Para: my $lockfile ="/tmp/".$me.".lock"; Salve o arquivo e feche, agora vamos fazer alguns testes para ver o sistema funcionando.

Instalando a impressora no servidor Acesse o CUPS: http://ip_do_servidor:631 Em "Administration" no vem por padro selecionado "Share published printers connected to this system", selecione e clique em "Change Settings", voc ser redirecionado para uma pgina https para aceitar o certificado no browser, aceite e pronto, simples.

Em "Administration" clique em "Find New Printers". A impressora foi encontrada como mostra figura abaixo:

Clique em "Add This Printer":

Clique em "Continue".

No meu caso j esta selecionado o driver correto. Clique em "Add Printer". Algumas impressoras que configurei ele fica nessa tela e parece no ter adicionado a impressora, mas na verdade j adicionou, espere alguns segundos e clique em "Printers".

Instalando a impressora no Windows Esses procedimentos so como de costume mesmo, v em iniciar, executar, digite o ip do seu servidor de impresso, \\172.16.1.68 no meu caso.

Lembra que na configurao do Samba tnhamos criado uma pasta troca, para caso voc queira facilitar as coisas, jogar o driver da impressora para agilizar o processo.

D dois cliques em cima da impressora e clique em sim.

Clique em ok.

Selecione o driver correto.

Aqui eu criei um arquivo de texto para teste de impresso.

Para facilitar quando chegarmos nos relatrios do Jasmine, criei um arquivo com outro nome.

Contabilizar as pginas no Jasmine

Agora para o Jasmine contabilizar as pginas vamos fazer a seguinte alterao editando o arquivo abaixo: $ sudo vim /etc/cups/printers.conf Na linha: DeviceURI socket://172.16.1.66 Altere para: DeviceURI jasmine:socket://172.16.1.66 Reinicie o CUPS. $ sudo invoke-rc.d cupsys restart Agora as impresses j esto prontas para ser contabilizadas, acesse o Jamine em: http://ip_do_seu_server/jasmine

Lembra aquela configurao l em cima que fizemos para no gastar folha? Faa o seguinte para o Jasmine contabilizar as pginas sem gastar folhas nem toner, editando o arquivo abaixo: $ sudo vim /etc/cups/printers.conf DeviceURI jasmine:socket://172.16.1.66 Altere para: DeviceURI jasmine:dummy:socket://172.16.1.66 $ sudo invoke-rc.d cupsys restart

No esquea de mudar essa configurao depois para voc poder imprimir de verdade no papel.

Exemplos de impressoras com Jasmine: USB: jasmine:usb://HP/LaserJet%20Professional%20P1102w PARALELA: jasmine:parallel:/dev/lp0 REDE: jasmine:socket://172.16.1.66 Exemplo dummy: jasmine:dummy:usb://HP/LaserJet%20Professional%20P1102w At mais. :)

http://www.vivaolinux.com.br/artigo/CUPS-+-Jasmine-(gerenciador-de-impressoes-e-relatorios-de-impressao) Voltar para o site