Não existe uma impressora de texto genérico no OSX.
O OSX trata internamente CADA impressora como postscript no nível do SO.
Em seguida, converte a saída postscript para qualquer idioma que a impressora precise (ZPLII no seu caso).
Assim, o aplicativo Remote Desktop vê uma impressora "postscript" no OSX e comunica isso ao seu servidor Windows. (O Windows geralmente o vê como um "dispositivo MS ImageSetter", que é uma impressora PostScript genérica.)
Seu aplicativo ignora isso e envia o RAW ZPLII para o Mac, mas o Mac estava esperando receber Postscript e, portanto, sua mensagem de erro ao tentar interpretar o arquivo Postscript (que não é Postscript, mas ZPLII).
Isso é desagradável porque você não tem uma maneira fácil de lidar com isso.
Se a impressora do cliente for uma impressora de rede (pareço lembrar que os modelos GXxxxt têm a interface Zebra LAN regular), você poderá fornecer o arquivo ZPL bruto ao cliente e fazer com que o cliente o envie manualmente para a impressora. o bom e velho comando lpr. O cliente teria que executar algo assim em uma linha de comando no Terminal:
lpr -H <ip-address printer> -P PORT1LF -l <filename of ZPL-file>
Por favor note: -H e -P são case-sensitve !! "-l" é um L. minúsculo -H (nome do host) especifica o endereço IP da impressora, -P nome da fila, -l significa que "o arquivo já está formatado, não toca no conteúdo".
Por favor note (2): PORT1LF é o nome de fila normal usado internamente pelas interfaces de LAN da Zebra. Se a Zebra não usa uma interface LAN Zebra, mas outra marca, você geralmente precisa usar "auto" ou "texto" para o parâmetro -P. Consulte o manual.
EDIT adicionado após algumas pesquisas
No OSX, você pode criar uma chamada fila de impressão "RAW" usando a ferramenta commandline lpadmin ou usando a interface web do CUPS no link .
No entanto, essas impressoras RAW não aparecem como impressoras regulares no OSX, porque os aplicativos da GUI do OSX precisam absolutamente de uma impressora para ser Postscript. Para impressoras não-Postscript, o CUPS fornece um conversor Postscript que traduz o Postscript para algo que a impressora não Postscript entende.
Para uma impressora RAW, essa conversão para Postscript não pode ser feita, portanto, as impressoras RAW não são oferecidas aos aplicativos GUI do OSX como dispositivos de impressão válidos. (Eles podem ser usados com as ferramentas de impressão de linha de comando como lpq, lpr, etc.)
E é por isso que nenhum cliente RDP no OSX os encaminha! Eles apenas encaminham impressoras regulares.
(Tecnicamente, não há razão para o cliente RDP não apresentar uma impressora RAW (usando o antigo gerenciamento unpr lpr / lpq) sobre o RDP como uma impressora "Genérica / somente de texto" para o Windows. Mas exigiria programação extra para fazer E como esse uso específico é um nicho muito pequeno, não vou ver isso acontecer tão cedo.)
Sua única solução, até onde eu sei, é a que eu já mencionei. Forneça o arquivo ao usuário e peça-lhe que o imprima localmente usando lpr.
A impressora está conectada via USB, mas isso não é problema. Usando a interface web do CUPS, você pode configurar uma impressora USB como uma fila de impressão não processada.
Parte desta página da Web Adicionar fila de impressão não processada, você precisa apenas das etapas 3 a 7 explica como faça isso. Até usa uma zebra como exemplo.