
일반적인 배포에 대해 설명하겠습니다. Zebra 프린터를 사용하는 Windows 고객이 있습니다.
일반/텍스트 프린터 드라이버를 사용하여 로컬에 프린터를 설치합니다.
원격 데스크톱을 통해 Windows 2008 서버에 연결됩니다. 내 응용 프로그램은 원시 ZPL II 코드(텍스트)를 프린터 드라이버로 보내고 모든 것이 작동합니다.
이제 MacOSX Yosemite 10.10.3을 사용하는 고객이 있습니다. 그는 Microsoft 원격 데스크톱 앱을 사용하여 연결하고 있습니다. 프린터 목록에 Zebra 프린터가 보입니다. 내 응용 프로그램이 프린터 드라이버로 인쇄할 때 Mac 스풀에 "PostScript 파일을 변환할 수 없습니다"라는 메시지가 나타납니다. 원시 텍스트를 프린터로 보내기 때문에 "정상"입니다.
그런 다음 MacOS에 Raw 프린터를 추가하려고 했지만 원격 데스크톱에 표시되지 않습니다.
어떻게 해야 하나요?
답변1
OSX에는 일반 텍스트 프린터 같은 것이 없습니다.
OSX는 내부적으로 모든 프린터를 OS 수준에서 포스트스크립트로 처리합니다. 그런 다음 포스트스크립트 출력을 프린터에 필요한 언어(귀하의 경우 ZPLII)로 변환합니다.
따라서 원격 데스크톱 앱은 OSX에서 "포스트스크립트" 프린터를 확인하고 이를 Windows 서버에 전달합니다. (Windows에서는 일반적으로 이를 일반 Postscript 프린터인 "MS ImageSetter 장치"로 간주합니다.)
귀하의 응용 프로그램은 이를 무시하고 어쨌든 RAW ZPLII를 Mac에 푸시하지만 Mac은 Postscript를 수신할 것으로 예상했기 때문에 Postscript 파일(실제로는 Postscript가 아니고 ZPLII)을 해석하려고 할 때 오류 메시지가 나타납니다.
실제로 쉬운 방법이 없기 때문에 이것은 불쾌합니다.
고객 프린터가 네트워크 프린터인 경우(GXxxxt 모델에는 일반 Zebra LAN 인터페이스가 있는 것으로 기억함) 원시 ZPL 파일을 고객에게 제공하고 고객이 이전의 좋은 프린터를 사용하여 수동으로 프린터에 보내도록 할 수 있습니다. lpr 명령. 고객은 터미널의 명령줄에서 다음과 같은 작업을 실행해야 합니다.
lpr -H <ip-address printer> -P PORT1LF -l <filename of ZPL-file>
참고: -H 및 -P는 대소문자를 구분합니다!! "-l"은 소문자 L입니다.
-H(호스트 이름)는 프린터의 IP 주소를 지정하고, -P는 대기열 이름을 지정하며, -l은 "파일이 이미 포맷되었으므로 내용을 건드리지 마세요"를 의미합니다.
참고 (2): PORT1LF는 Zebra LAN 인터페이스에서 내부적으로 사용되는 일반 대기열 이름입니다. Zebra가 Zebra LAN 인터페이스를 사용하지 않고 다른 브랜드를 사용하는 경우 일반적으로 -P 매개변수에 "auto" 또는 "text"를 사용해야 합니다. 설명서를 참조하세요.
일부 연구 후에 편집이 추가되었습니다.
OSX에서는 명령줄 lpadmin 도구를 사용하거나 다음 위치의 CUPS 웹 인터페이스를 사용하여 소위 "RAW" 인쇄 대기열을 생성할 수 있습니다.http://localhost:631.
그러나 이러한 RAW 프린터는 OSX에서 일반 프린터로 표시되지 않습니다. 왜냐하면 OSX GUI 응용 프로그램에는 Postscript인 프린터가 절대적으로 필요하기 때문입니다. 비 Postscript 프린터의 경우 CUPS는 Postscript를 비 Postscript 프린터가 이해할 수 있는 것으로 변환하는 Postscript 변환기를 제공합니다.
RAW 프린터의 경우 Postscript로의 변환이 불가능하므로 RAW 프린터는 OSX GUI 응용 프로그램에 유효한 인쇄 장치로 제공되지 않습니다. (lpq, lpr 등과 같은 명령줄 인쇄 도구와 함께 사용할 수 있습니다.)
이것이 바로 OSX의 RDP 클라이언트가 이를 전달하지 않는 이유입니다! 그들은 단지 일반 프린터를 전달합니다.
(기술적으로 RDP 클라이언트가 Windows에 "일반/텍스트 전용" 프린터로 RDP를 통해 RAW 프린터(구식 Unix lpr/lpq 처리 사용)를 표시할 수 없는 이유는 없습니다. 그러나 이를 수행하려면 추가 프로그래밍이 필요합니다. 그리고 이 특정 용도가 매우 작은 틈새 시장이라는 점을 감안할 때 이러한 일이 곧 발생하지는 않을 것입니다.)
내가 아는 한 유일한 해결 방법은 내가 이미 언급한 것입니다. 사용자에게 파일을 제공하고 lpr을 사용하여 로컬로 인쇄하도록 합니다.
프린터에 USB가 연결되어 있지만 문제가 되지 않습니다. CUPS 웹 인터페이스를 사용하면 USB 프린터를 원시 인쇄 대기열로 설정할 수 있습니다. 이 웹페이지의 일부원시 인쇄 대기열을 추가하세요. 3~7단계만 필요합니다.그 방법을 설명합니다. 심지어 Zebra를 예로 사용합니다.
답변2
이제 답을 찾은 것 같아요.
이 앱을 다운로드해야 합니다: https://www.peninsula-group.com/labeller-thermal-labelling-software/
데모 버전을 실행하고 여기에서 프린터를 설치합니다.
그런 다음 드라이버를 초기 zebra에서 새 드라이버로 변경합니다( Peninsula-group.com의 9.1.14).
친애하는