현재 개발 중인 POS 프로그램의 현재 아키텍처에 대한 빠른 요약:
+ 웹 기반 데이터베이스 서버
+ 데이터베이스 미러, 웹 서버, PDF 생성기, 인쇄 서버, 브라우저 기반 UI가 포함된 로컬로 설치된 Mac Mini(Yosemite, 헤드리스)
+ 바코드 스캐너가 연결된 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';
원하는 솔루션: 매장 관리자(IT 관리자 아님)가 프로그램에서 사용하는 실제 프린터(가급적 선택 상자)를 설정할 수 있는 구성 UI를 제공하고 싶습니다. 사용자 선택은 데이터베이스에 저장되고 프로그램에서 사용됩니다.
질문: 이와 같은 선택 상자를 생성하기 위해 현재 설치된 프린터 목록을 어떻게 얻을 수 있습니까?
<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 경로에 저장하려면 어떻게 해야 합니까?