Filtro Cups p/ Xerox

Interface MLP

O MLP é mais que um filtro para Cups. Ele é um conjunto de aplicação e scripts em shell para solucionar um problema bastante específico.

O desafio

Os multifuncionais Xerox têm diversas funcionalidades embutidas, uma delas é a contabilização e controle da utilização dos recursos. Pode-se controlar a utilização do multifuncional com base em usuários e senhas, cadastrados no próprio equipamento, ou existentes em um controlador de domínio, ou através de autenticação web, entre outras coisas.

Durante a implantação de um projeto de outsourcing, onde o cliente final realizava a transição do sistema operacional para Ubuntu e o modelo de contabilização 'on-box' estava sendo implementado, percebeu-se que o 'driver' do fabricante para o SO GNU/Linux não realizava a inserção dos dados de contabilização para diversos usuários que utilizassem uma mesma conta para registrar-se no ambiente Ubuntu/Cups, pelo menos não de forma indolor.

A solução: MLP

Para solucionar o problema bastava que se fizesse constar os dados da contabilização (usuário, grupo/senha e método de contabilização) no cabeçalho do trabalho de impressão que fosse enviado ao equipamento.

Tudo foi pensado para integração com o ambiente do cliente, com a menor intervenção possível e mantendo o Look and Feel para o usuário. Exigiu-se o desenvolvimento de uma interface para a entrada dos dados de contabilização (usuários diferentes utilizavam a mesma conta para autenticar no computador), a persistência de dados para os casos em que os dados de contabilização não mudavam, modificações no arquivo PPD original, criação de um backend para o Cups e scripts de instalação para por as coisas em seus devidos lugares.

O processo de instalação precisou ser bastante simplificado e documentado para ser reproduzido pelos técnicos de campo sem sacrifício de tempo.

Componentes do MLP

Obs.: Os códigos-fonte são de propriedade do contratante e não estão disponíveis para download.

Fluxo de funcionamento

Depois que o MLP é instalado, o usuário pode utilizá-lo de forma transparente. A escolha pelo backend MLP é feita no momento da criação da fila de impressão.

  1. Um comando de impressão é gerado por qualquer aplicação (Firefox, LibreOffice, OpenOffice etc)
  2. O usuário escolhe uma das opções das filas de impressão no diálogo comumente exibido.
  3. Trabalho de impressão é enviado para o serviço Cups (servidor de impressão)
  4. O Cups trata o trabalho de impressão fazendo uso do PPD modificado
  5. Antes do envio do trabalho de impressão para a impressora o backend MLP faz a inserção dos dados de contabilização
    1. No caso dos dados de contabilização não estarem disponíveis, ou mediante configuração, é disparado um diálogo para o usuário.