-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Eu, Carlos Augusto da Silva Martins, criei o projeto, antes chamado de SSPRINTER, com objetivo de prover um software livre e de código aberto (open-source) capaz de realizar funções que ainda não existem ou foram exploradas na marioria dos softwares pagos/proprietários.
Continuei o desenvolvimento do projeto, nomeado IFSUP, em parceria com a empresa que eu trabalhava, o Instituto Federal de Educação, Ciência e Tecnologia do Sul de Minas Gerais da cidade de Inconfidentes – MG (IFSULDEMINAS – Campus Inconfidentes). Tal aliança foi firmada entre eu e o coordenador do setor onde eu trabalhava, NTIC (Nucleo de Tecnologia da Informação e Comunicação), Gilcimar Dallo.
O projeto foi desenvolvido para controlar e gerir tarefas de impressão para uma empresa seja ela particular ou privada. Com a missão de diminuir gastos com quantidade de impressões e/ou com recursos. Além de seervir como gestor de impressão, o IFSUP controla e gerencia o uso do recurso de impressão que muitos funcionários abusam.
IFSUP = Instituto Federal do Sul de Minas Gerais Universal Printer (nome meio consufo rs, prefiro IFSULDEMINAS - Universal Printer)
Segue abaixo uma imagem ilustrativa do agente rodando no Windows 10 e sua comunicação estrutural.

Recursos utilizados para seu desenvolvimento:
Visual Studio Community 2015
Python 2.7
CUPS
MySQL ou MariaDB
LDAP
SAMBA (>=4.6.2, https://download.samba.org/pub/samba/)
Tea4Cups (CUPS-Plugin >=3.12, http://www.pykota.com/software/tea4cups/download)
Python-Pillow (Python Image Library)
PKPGCOUNTER (recomendado a versão 3.50, http://www.pykota.com/software/pkpgcounter/download)
Apache
PHP5
FirewallD
Microsoft Windows 10
Debian Stretch
Atualmente adicionei compatibilidade para redes IPv6, trabalhando sobre pilha dupla.
O projeto está aberto para receber possíveis melhorias, como interface Web, outros métodos de criptografia, dicas para melhorar Layout, críticas e sugestões.
Antes de instalar, instale as dependencias 'pkpgcounter' e 'hplip' localizados na pasta 'dependencies'.
Para instalar, basta executar o arquivo 'install.sh'
É preciso deixar rodando o daemon "ifsup-daemon", que pode ser manipulado por 2 scripts: start e stop; localizados na pasta bin do servidor.
O Tea4Cups chama o ifsup-capture-job.
Após isso, se houver impressão o ifsup-daemon chama o "ifsup_printer".
Adicionar as impressoras virtuais com o nome de "ifsupprinter##".
Todos os arquivo do diretório desse sistema deverão possuir a permissão 775 para o usuário LP e grupo LP.
Tutorial de implantação:
[Instalação]
Usando o gerenciador de pacotes:
apt install mysql-server pkpgcounter cups cups-tea4cups cups-ipp-utils cups-filters ghostscript hplip libcupsfilters1 firewalld -y
ou
yum install mariadb-server cups cups-tea4cups cups-ipp-utils cups-filters ghostscript hplip libcupsfilters1 firewalld -y
(Obs.: necessário instalar o pacote PKPGCOUNTER manualmente, pois o CentOS não possui no gerenciador de pacotes)
[Tea4Cups]
*Extrair
tar -zxvf tea4cups-3.12_official.tar.gz
*Copiar os seguintes arquivos para o respectivos diretórios.
cp tea4cups /usr/lib/cups/backend/ ou /lib/cups/backend/ (depende da distribuição)
cp tea4cups.conf /etc/cups/
[PKPCOUNTER]
*Extrair
tar -zxvf pkpgcounter-3.50.tar.gz
*Compilar o pacote
cd pkpgcounter-3.50 && python setup.py install
[FIREWALLD]
firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=631/tcp
firewall-cmd --reload
[IFSUP]
Baixar a versão mais atual do IFSUP (IFS Universal Printer) e extrair os arquivos. (Recomendo em "/opt/ifsup".)
wget https://codeload.github.com/casmssm/ifsup/zip/master -O ifsup.zip && unzip ifsup.zip
mkdir -p /opt/ifsup && mv ifsup-master/Server /opt/ifsup
cd /opt/ifsup
*Configurar as credenciais do banco de dados no arquivo 'ifsup.conf':
*Definir as permissões para os arquivos do sistema (Geralmente o usuário utilizado pelo CUPS é o 'lp'):
chown lp -R /opt/ifsup
[CUPS]
*Editar o arquivo de configuração do daemon do CUPS (/etc/cups/cupsd.conf) e adicionar os seguintes parâmetros:
*Adicionar a linha "Allow from IP.ADMIN/MASK" nas seguintes seções:
Restrict access to the server
Restrict access to the admin pages
Job-related operations must be done by the owner or an administrator
All administration operations require an administrator to authenticate
Only the owner or an administrator can cancel or authenticate a job (Somente em )
[ADIÇÃO]
Adicionar as impressoras na interface web.
Adicionar as impressoras manualmente no CUPS com seus respectivos
drivers e a seguinte estrutura:
*Impressora Real
Nome da impressora: exemplo
Conexão da impressora: (escolha conforme o método de conexao entre o servidor e a impressora)
Compartilhar impressora: NÃO
*Impressora Virtual:
Nome da impressora: ifsupexemplo
Conexão da impressora VIRTUAL: tea4cups://
Compartilhar impressora: SIM
Obs: As impressoras reais devem estar com a opção "SHARE" (compartilhar) desmarcada no momento da criação. E as impressoras virtuais DEVERÃO ser compartilhadas, e deverão ser testadas todas as impressoras antes de colocar em produção, algumas exigem que a impressora intermediária, ifsupprinterXX, deverá ter o driver genérico "Local RAW".
[Plugin]
*Instalação de plugin proprietário para impressoras HP:
*Para começar é necessário rodar o seguinte comando com um usuário que não é root/administrador.
hp-plugin -i -p /path-to-plugin-dir
Irá perguntar se você deseja continuar mesmo sem verificar o pacote, confirme.
Após isso aceite o "Acordo de Licença", e em seguida confirme a senha de root.
[Utilização]
O cliente deverá possuir a versão 'client' do software disponível em https://github.com/casmssm/ifsup/tree/master/Client.
*Adição das impressoras nos clientes
Adicionar com o seguinte endereço:
https://ifsup.example.com:631/printers/NOME_DA_IMPRESSORA