The company DYMO makes some of the best labeling devices in the world. Among them is a selection of USB devices that offer the ability to print labels from the convenience of the PC keyboard.

One very nice model is the DYMO LabelManager PnP

As a company, they are exemplary in their support for a variety of common operating systems. They distribute drivers for Windows, Macintosh, as well as Linux. There’s just one little catch: The drivers for Linux use CUPS (the Common Unix Printing System), which is actually a very good thing. But, a few of the labeling devices, don’t register as USB printers. Get this: they register as HIDs (Human Interface Devices) as though they were a keyboard mouse or some other input device. And this little fact renders the Linux drivers useless for these devices.

The LabelManager PnP is one of these devices.

The software downloads at the support section of the DYMO website contain a Software Developer’s Kit. This kit contains a document with the list of labeling devices that are supported under linux (register as printers), and those that don’t. Since the LabelManager PnP is new, however, it hasn’t made it onto this list yet. And I went ahead and risked the purchase.

I’m getting to the point of this writing, please bear with me.

In the absence of any linux support, I spent some time looking at the USB packets and reading the source code of the CUPS filter. After understanding the data encoding for the labels, I was able to write a small program that interfaces with the LabelManager PnP directly.

And since I know that there are others who want to use this labeler with linux, I offer it here, freely, for your use.

dymoprint (all versions)

It is a command-line program that takes the text to be printed on the label as arguments. Each passed argument is taken to be a line, and the lines are scaled so that all supplied lines will fit under each other on the label. The code isn’t really complicated, and the logic should be easy enough to change to suit your needs.

If this program is useful for you, I’d love to find out. I’d appreciate a short e-mail along the lines of “Thanks for your code - It’s useful”. If interest is big enough, I’ll consider turning it into an open-source project. Of course, any modifications you make and want to share are always welcome.