1

Let me explain my usual deployment. I have customers on Windows which have Zebra printers.

We install locally thoses printer using Generic/Text printer drivers.

They connect via Remote Desktop to my Windows 2008 server. My Application sends raw ZPL II code (text) to the printer driver and everything works.

I now have a customer on MacOSX Yosemite 10.10.3. He's using Microsoft Remote Desktop app to connect. I can see the Zebra Printer in the printer list. When my Application prints to the printer driver, the Mac spool says "Unable to convert PostScript File". It's "normal" since I send raw text to printer.

Unable to convert PostScript File

I then tried to add a Raw printer in MacOS, but it does'nt show up in Remote Desktop.

What should I do?

2 Answers 2

3
+100

There is no such thing as a generic text printer on OSX.
OSX internally treats EVERY printer as postscript at the OS level. Then converts the postscript output to whatever language the printer needs (ZPLII in your case).

So the Remote Desktop APP sees a "postscript" printer on OSX and communicates that to your Windows server. (Windows usually sees it as a "MS ImageSetter device" which is a generic Postscript printer.)

Your application ignores that and pushes the RAW ZPLII to the Mac anyway, but the Mac was expecting to receive Postscript and hence your error message when it tries to interpret the Postscript file (which is actually no Postscript, but ZPLII).

This is nasty because you don't really have an easy way around that.

If the customer printer is a network printer (I seem to recall the GXxxxt models have the regular Zebra LAN interface) you may be able to supply the raw ZPL file to the customer and have the customer send it manually to the printer using the good old lpr command. The customer would have to run something like this on a commandline in Terminal:

lpr -H <ip-address printer> -P PORT1LF -l <filename of ZPL-file>

Please note: -H and -P are case-sensitve !! "-l" is a lowercase L.
-H (hostname) specifies the ip-address of the printer, -P the queue-name, -l means "file is already formatted, don't touch the content".

Please note (2): PORT1LF is the normal queue-name used internally by Zebra LAN-interfaces. If the Zebra doesn't use a Zebra LAN interface but another brand you usually need to use "auto" or "text" for the -P parameter. Consult the manual.

EDIT added after some research
On OSX you can create a so-called "RAW" print-queue by using the commandline lpadmin tool or by using the CUPS webinterface at http://localhost:631.
However such RAW printers do not show up as regular printers in OSX, because OSX GUI applications absolutely need a printer to be Postscript. For non-Postscript printers CUPS provides a Postscript converter that translates the Postscript to something the non-Postscript printer understands.
For a RAW printer this conversion to Postscript can't be done, so RAW printers are not offered to OSX GUI applications as valid print-devices. (They can be used with the command-line print-tools like lpq, lpr, etc.)
And that is why NO RDP client on OSX forwards them! They just forward regular printers.
(Technically there is no reason why the RDP client couldn't present a RAW printer (using old-school unix lpr/lpq handling) over RDP as a "Generic/Text Only" printer to Windows. But it would require extra programming to make this happen. And given that this particular usage is a very small niche I won't see this happen anytime soon.)

Your only workaround, as far as I can tell, is the one I already mentioned. Supply the file to the user and have him print it locally using lpr.
The printer is USB attached, but that is no problem. Using the CUPS web-interface you can set up a USB printer as a raw print-queue. Part of this web-page Add raw print-queue, you only need steps 3 to 7 explains how to do that. It even uses a Zebra as example.

9
  • My customer actually uses the USB port... I did'nt see it so I can't tell if there's a LAN interface. If it's using the USB port, what parameters should I use to print a file?
    – vIceBerg
    Apr 22, 2015 at 23:38
  • And there's no generic text, but there's RAW printers... There's nothing I could do with that?
    – vIceBerg
    Apr 22, 2015 at 23:41
  • @vIceBerg USB connected... I don't know if you can send a file directly to the printer that way. I never used a USB connected printer on a Mac. I found a Tutorial on Google code link which describes how to setup a RAW printer via CUPS on OSX. This might just be suitable for your use-case. I'm in the office now. When I get home tonight I can test this myself and update my answer if this provides a solution.
    – Tonny
    Apr 23, 2015 at 7:51
  • The problem with the RaW driver is Remote Desktop does not recognize them. At least, I did not find how.
    – vIceBerg
    Apr 23, 2015 at 11:27
  • @vIceBerg A question about your setup.. You don't mention if your customers are in the same LAN or dailing in on a VPN. The latter seems more logical reading between the lines. This makes a difference for possible solutions.
    – Tonny
    Apr 23, 2015 at 11:48
0

I think i have find an answer.

You have to download this app : https://www.peninsula-group.com/labeller-thermal-labelling-software/

The you run the demo version and you install a printer from it.

After that you change the driver from your initial zebra to the new driver (9.1.14 from peninsula-group.com)

Best regards

1
  • Unfortunately that software doesn't help in this case. It provides a MacOS driver, that is true, but that isn't the problem. The poster needs to send pre-formatted output in ZPL format to the, bypassing the formatting part of the OSX driver.
    – Tonny
    Nov 21, 2019 at 13:39

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .