Linux 시스템에서 Java를 실행하는 클라이언트를 위한 대규모 사용자 정의 애플리케이션이 있습니다.
많은 출력물(청구서 등)을 생성하고 여러 프린터에서 자동으로 인쇄합니다. 이것이 설계된 방식은 각 사용자에 대해 그에게 할당된 프린터를 지정하는 테이블이 정의된다는 것입니다. 모든 사용자는 여러 사무실에 걸쳐 고정된 좌석에 앉아 있으므로 이 책상은 크게 바뀌지 않습니다.
이전에는 대규모 사무실을 위한 대형 라인 프린터와 소규모 사무실을 위한 Epson 도트 매트릭스 프린터를 사용했습니다.
애플리케이션은 각 청구서를 txt 파일로 생성하여 파일 시스템 디렉터리에 저장합니다. 각 디렉터리에서 새 파일을 찾아 lp 명령을 사용하여 인쇄하도록 보낸 다음 txt 파일을 삭제하는 루프에서 실행되는 bash 스크립트가 있습니다. 보낼 프린터를 결정하는 방법은 간단합니다. 프린터 이름은 디렉터리 이름과 동일합니다.
라인 및 도트 매트릭스 프린터는 장기간 사용 후 점차 노후화되어 레이저 프린터로 교체되었습니다. 모든 레이저 프린터 이름과 해당 디렉터리 이름이 "-PS"로 끝나고 lp 명령이 이를 enscript를 통해 PostScript로 변환하도록 스크립트를 업데이트했습니다.
이제 청구서에 몇 가지 서식을 추가할 생각입니다. 화려한 것은 없고 굵은 제목과 일부 글꼴 형식만 사용됩니다.
enscript를 읽어보니 다음과 같이 이스케이프 코드를 추가할 수 있다는 것을 알았습니다.스택 교환 예여기에 주어졌습니다. 이것은 여기의 요구를 충족시킬 것입니다.
그러나 txt 파일에 이스케이프 코드를 추가하면 레이저 프린터에서는 작동하지만 사용자가 라인 또는 도트 매트릭스 프린터에 할당된 경우에는 작동하지 않습니다. 스크립트는 일반 lp를 사용하여 enscript를 통한 파이핑 없이 이를 나타냅니다.
어떤 아이디어라도 환영받을 것입니다.