
讓我解釋一下我通常的部署。我的 Windows 客戶擁有 Zebra 印表機。
我們使用通用/文字印表機驅動程式在本機安裝這些印表機。
他們透過遠端桌面連接到我的 Windows 2008 伺服器。我的應用程式將原始 ZPL II 代碼(文字)發送到印表機驅動程序,一切正常。
我現在有一個使用 MacOSX Yosemite 10.10.3 的客戶。他正在使用 Microsoft 遠端桌面應用程式進行連接。我可以在印表機清單中看到 Zebra 印表機。當我的應用程式列印到印表機驅動程式時,Mac 後台列印顯示「無法轉換 PostScript 檔案」。這是“正常”的,因為我將原始文字發送到印表機。
然後我嘗試在 MacOS 中新增原始印表機,但它沒有顯示在遠端桌面中。
我該怎麼辦?
答案1
OSX 上沒有通用文字印表機之類的東西。
OSX 在內部將每台印表機視為作業系統層級的後記。然後將 postscript 輸出轉換為印表機所需的任何語言(在您的情況下為 ZPLII)。
因此,遠端桌面應用程式在 OSX 上看到「postscript」印表機,並將其傳送到您的 Windows 伺服器。 (Windows 通常將其視為“MS ImageSetter 設備”,它是通用的 Postscript 印表機。)
您的應用程式會忽略這一點,並將 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。
請注意 (2):PORT1LF 是 Zebra LAN 介面內部使用的普通佇列名稱。如果 Zebra 不使用 Zebra LAN 介面而是其他品牌,您通常需要使用「auto」或「text」作為 -P 參數。請參閱手冊。
經過一些研究後加入編輯
在 OSX 上,您可以使用命令列 lpadmin 工具或使用位於下列位置的 CUPS Web 介面來建立所謂的「RAW」列印佇列:http://本地主機:631。
然而,這類 RAW 印表機在 OSX 中不會顯示為常規印表機,因為 OSX GUI 應用程式絕對需要印表機才能成為 Postscript。對於非 Postscript 印表機,CUPS 提供了一個 Postscript 轉換器,可將 Postscript 轉換為非 Postscript 印表機可以理解的內容。
對於 RAW 印表機,無法完成到 Postscript 的轉換,因此 RAW 印表機不會作為有效的列印設備提供給 OSX GUI 應用程式。 (它們可以與 lpq、lpr 等命令列列印工具一起使用)
這就是為什麼 OSX 上的 RDP 用戶端不會轉發它們!他們只是轉發普通印表機。
(從技術上講,RDP 用戶端沒有理由不能透過 RDP 將 RAW 印表機(使用老式的 unix lpr/lpq 處理)作為「通用/純文字」印表機呈現給 Windows。但這需要額外的程式設計才能使鑑於這種特殊用途是一個非常小的利基,我不會很快看到這種情況發生。
據我所知,你唯一的解決方法是我已經提到的。將文件提供給使用者並讓他使用 lpr 在本地列印。
印表機是 USB 連接的,但這沒問題。使用 CUPS Web 介面,您可以將 USB 印表機設定為原始列印佇列。此網頁的一部分新增原始列印佇列,只需要步驟3到7解釋瞭如何做到這一點。它甚至以斑馬為例。
答案2
我想我已經找到答案了。
你必須下載這個應用程式: https://www.peninsula-group.com/labeller- Thermal-labelling-software/
您運行演示版本並從中安裝印表機。
之後,將驅動程式從最初的 zebra 更改為新驅動程式(來自 peninsula-group.com 的 9.1.14)
此致