Command-line printing for Epson LabelWorks LW-600P.
Install the CLI:
go install github.com/oxplot/nospero/cmd/nosperoPair one LW-600P in macOS Bluetooth settings, then run:
nospero statusNospero discovers the paired printer by Bluetooth Device ID
vendor=0x0430 product=0x0211 and opens IOBluetooth RFCOMM directly.
For multiple paired printers, select one with --address.
The default RFCOMM channel is 1.
The LW-600P prints at 180dpi. Some LabelWorks models on the same protocol print
at a different resolution — notably the LW-C610/LW-C610PX at 360dpi (a
256-dot head), which reports the same Bluetooth vendor and product ID as the
LW-600P. Nospero therefore picks the resolution from the model prefix of the
paired device's Bluetooth name (LW-C610@4fdc04 → 360dpi) and scales the
printable-dot tables accordingly.
Override it when the model cannot be identified:
nospero --dpi 360 print text "Hello"--dpi is required alongside --address, because macOS reports no model name
on that path. Nospero warns on stderr whenever it falls back to the default
resolution — printing at the wrong one silently yields a half-size label.
nospero env reports the effective value (LW600P_DPI=0 means auto-detect).
nospero status
nospero diagnose
nospero fonts add Roboto
nospero fonts list
nospero print text "Hello"
nospero print text --font Roboto --font-weight 700 --italic "Hello"
nospero print text --text-align center --font Roboto "Top\nBottom"
nospero print barcode --type code128 "ASSET-42"
nospero print barcode --type qr "https://example.com/asset/42"
nospero print image --file label.png
nospero print mixed --file logo.png --text "Asset 42" --layout leftText printing requires a downloaded local font. nospero fonts add accepts a
Google Fonts specimen URL such as https://fonts.google.com/specimen/Open+Sans
or a family name such as Roboto, then stores a Go-renderable TTF/OTF in the
user cache directory. The default text font is Roboto. Text labels accept
--font-weight 100..900 and --italic; if Google Fonts provides a matching
face, Nospero uses it, otherwise it applies the weight or slant in Go during
rendering.
Barcode labels are rendered locally and printed through the same raster path as
text and image labels. Supported barcode types are aztec, codabar,
code128, code39, code93, datamatrix, ean8, ean13, pdf417, qr,
2of5, and 2of5-interleaved. Use --module-dots when a scanner needs
wider modules than the default.