Breve introdução à arquitetura atual de um programa de PDV que estou desenvolvendo atualmente:
+ Servidor de banco de dados baseado na Web
+ localmente instalado o Mac Mini (Yosemite, sem cabeça) com espelho de banco de dados, servidor web, gerador de PDF, servidor de impressão, UI baseado em navegador
+ clientes como tablets iPad ou Android com scanner de código de barras conectado
O problema: fornecer nomes de filas de impressora para o programa, que são impressoras de etiquetas, impressoras de recibo térmico e impressoras laser de escritório comuns. Cada um deles é necessário para diferentes tarefas durante o fluxo de trabalho.
Solução atual (que funciona): Eu tenho um arquivo de configuração do php, onde os nomes das filas são codificados como
$cfg['labelprinter'] = 'DYMO_LW_450_desk';
$cfg['labelprinter_fallback'] = 'DYMO_LW_450_store';
$cfg['bonprinter'] = 'TM-T88V_desk';
$cfg['bonprinter_fallback'] = 'TM-T88IV_store';
Solução desejada: Eu quero fornecer uma interface do usuário de configuração onde o gerente da loja (que não é o administrador de TI) pode definir as impressoras reais para o programa usar, melhor seria uma caixa de seleção. A seleção do usuário será armazenada no banco de dados e usada pelo programa.
A pergunta: Como posso obter uma lista de impressoras atualmente instaladas para gerar uma caixa de seleção como essa?
<select name="labelprinter">
(<option value="queuename">real printer name, location</option>)
<option value="DYMO_LW_450_desk">DYMO LabelWriter 450, desk</option>
<option value="DYMO_LW_450_store">DYMO LabelWriter 450, store</option>
<option value="TM-T88V_desk">Epson TM-T88V, desk</option>
<option value="TM-T88IV_store">Epson TM-T88IV, store</option>
(<option value="other queuenames">other printer, other location</option>)
</select>
Como posso ler a configuração do CUPS e gerar um arquivo de texto automaticamente que contém uma lista dessas impressoras e armazená-lo no caminho do htdocs?