[cups] Auto-reformatting shipping labels for a 4x6 thermal printer
Nick Bogdanov
nickrbogdanov at gmail.com
Sun Jun 18 14:59:07 PDT 2023
I started doing small-scale e-commerce projects, and found that manually
feeding US Letter (8.5x11) sticky labels through my old LaserJet 5L was a
pain. So I bought a surplus Zebra GK420d thermal label printer, plugged it
into my network, and loaded it up with a spool of 4x6 shipping labels. The
Zebra printer speaks ZPL and works flawlessly with CUPS. I have been very
happy with it so far.
This arrangement is fairly painless when an online service (e.g. FedEx)
provides a PDF with a label specifically formatted for 4x6 label printers.
It's more of a hassle when they only want to provide PDFs sized for US
Letter printers, with 2 labels per sheet (or 1 label per half sheet). If
you purchase bulk shipping labels from eBay, for instance, there is no
option to request 4x6 labels; they just send you one giant PDF with 2
labels per 8.5x11 page. If you try to print this to the 4x6 Zebra printer,
the labels get completely mangled; usually it gets cut off right in the
middle.
The workarounds I found searching online involved manually importing each
bulk label PDF into Adobe Acrobat and cropping it by hand. This isn't a
very scalable solution and there ought to be a way to make the software do
the heavy lifting for us.
What I'd like to do is have CUPS notice that I'm printing an 8.5x11 sheet
of labels to a 4x6 form factor printer, and automatically reformat each
label on the page to fit the 4x6 media. I would also like to have the
ability to optionally resize it to fit on smaller 4x3 labels, which are
more convenient for tiny packages.
What would be a good way to approach this? I would be comfortable writing
some code if needed. I don't know the CUPS architecture at all, though,
and I'm not sure where to start.
cc: Michael since he seems to be the main contributor
to filter/rastertolabel.c
More information about the cups
mailing list