I’m generally writing drivers for certain USB VIDs (vendors) that all speak the same “language” e.g. Zebra (ZPL), DYMO, Brother, etc. Often their are edge cases for individual USB PIDs (products), and even more granularity based on device status responses e.g. cutter, firmwares, etc.
So why not use the device driver? For one, they are often terrible experiences, especially Zebra on macOS, let alone other obscure models with zero Mac support. Another is printer drivers are almost exclusively tailored for large paper sizes, don’t give the user fine control over orientation, often auto-scale and hijack all these settings to best fit, which then destroys any attempt at fidelity with the intended output DPI which is often critical for matching with the smallest feature of a barcode. It’s tough to explain but in short, if your smallest barcode’s smallest feature is one dot width, then the next size larger must be double the barcode size because you must double the smallest width to keep the same relative size to ensure scanability. It comes down to “don’t dither barcodes” and all sorts of enforcement can happen if the app controls exactly how these are represented to the printer. No guesswork allowed.
All this to say: the printer expects to be told exactly what to do, but the driver plays loose and fast.
Eventually, after only focusing on thermal printers, a few years into development I added the ability to send perfectly sized PDFs to print queues effectively allowing access to any printer with a system driver (inkjet and laser). You can easily test “both ways” and see what you prefer. Using the in-app “driver” has so many advantages. You can adjust most print settings and they get saved for each design vs externally. You can buy a new Mac or PC and plug-in a supported thermal printer and it’ll just work without any drivers. It’s really nice UX in an otherwise very hostile environment.
TLDR: I’m not writing inkjet/laser drivers, only thermal, and only when enough users request explicit support because of problems they are facing (above).
I thought it might be something like that. I started my career writing label printing software but that was in the days before Windows/macOS or even Zebra printers.
However, I was about 5 minutes on your site and could not find a list of compatible printers. Where did you hide it :) ?