Repository navigation
BarcodeMate 0.5.2
BarcodeMate 0.5.2 brings the Retail Stores workspace to the desktop app, and prints Code 128 as native Zebra commands.
Retail Stores
- Import a product list from CSV or TSV, or paste cells straight from a spreadsheet. Headers are suggested and can be remapped by hand, the decimal separator is yours to choose, and a failed import never partially overwrites the list you already have. Leading zeros in codes are kept. XLSX files still need saving as CSV or TSV first.
- Three layouts: product stickers, shelf price tags and sale tags, each with name, price, size and a short note. The code can be automatic, Code 128, EAN-13, UPC-A, EAN-8, QR, or left off. Automatic recognises complete 13, 12 and 8 digit codes and uses Code 128 for everything else; it never rewrites a check digit and never silently switches to QR.
- Show the old price struck through beside the new one. The discount percentage is worked out for you and rounded down, so a label never claims more than the arithmetic supports. Multi-buy offers are free text, and change only what the label says, never what the till charges.
- Search the list, set a quantity per item, correct a price, undo, and reprint only the items you tick. Preview, test page, Print All and ZPL all act on that same ticked set; searching does not quietly change it.
- Paper, printer, four margins, rows and columns, gaps, offsets, skipped positions and screen calibration are the ones you already know from Warehouse, not a second set that drifts apart from them.
- Retail lists are saved under their own key with their own backup format, so a warehouse backup cannot be imported into a retail list by mistake. A damaged list is never silently replaced by the sample one. A currency applies to the whole list, is not converted, and printing stops rather than rounding a price beyond what that currency allows.
Native Code 128 for Zebra printers
- Choosing Zebra or ZPL now emits a real
^BCfield instead of a picture of the barcode. Export and direct printing use the same path, and there is no new switch to find. QR and EAN/UPC output is unchanged. - The preview is still encoded by BWIPP. The output reads the bars actually drawn, recovers the code words including A/B/C shifts, checks the checksum, and only then writes the ZPL. Printer-side optimisation and the automatic human-readable line are turned off so the printer cannot change the width or add text of its own.
- Module width, bar height, quiet zones and coordinates come from the same whole-dot layout as the preview: 8 dots per mm at 203 DPI, 12 at 300. Automatic module width stays within the 10 dots
^BYsupports; a manual size outside that range blocks output rather than letting the printer silently resize it. - Fields are hex-encoded with
^FH, and the receiving end accepts only the command shapes it expects.
Known limits
- The new retail interface text is complete in English, Simplified Chinese and Traditional Chinese; the other 21 languages fall back to English for those strings, as the recent Warehouse additions do.
- Verification used simulated printers and an independent ZXing decoder on the exported output at both DPIs. Paper feed accuracy, print darkness and real scanner behaviour still need testing on your own hardware.
- A list holds up to 1,000 labels; CSV import is capped at 2 MB and a single ZPL job at 2 MB.
Source commit: 67ecbacdabcec5f7c12f9d31dff22c57327020a7. Validated Windows/macOS packages: https://github.com/barcodemate/desktop/actions/runs/38187854668
Installers remain unsigned and macOS packages are not notarized.