简要介绍我目前正在开发的 POS 程序的当前架构:
+ 基于 Web 的数据库服务器
+ 本地安装的 Mac Mini(Yosemite、无头),带数据库镜像、Web 服务器、PDF 生成器、打印服务器、基于浏览器的 UI
+ 客户端连接了条形码扫描仪的 iPad 或 Android 平板电脑
问题:向程序提供打印机队列的名称,它们是标签打印机、热敏收据打印机和常规办公室激光打印机。在工作流程中,每个任务都需要执行不同的任务。
当前的解决方案(有效):我有一个 php 配置文件,其中队列名称被硬编码为
$cfg['labelprinter'] = 'DYMO_LW_450_desk';
$cfg['labelprinter_fallback'] = 'DYMO_LW_450_store';
$cfg['bonprinter'] = 'TM-T88V_desk';
$cfg['bonprinter_fallback'] = 'TM-T88IV_store';
想要的解决方案:我想提供一个配置 UI,商店经理(不是 IT 管理员)可以在其中设置程序使用的实际打印机,最好是一个选择框。用户选择将存储在数据库中并由程序使用。
问题:如何获取当前安装的打印机的列表来生成这样的选择框?
<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>
如何读取 CUPS 配置并自动生成一个文本文件,其中包含这些打印机的列表并将其存储在 htdocs 路径中?