Yep, and those printers are proprietary and mutually incompatible, and there are buggy mutually incompatible serial drivers on all the platforms which results in unique code paths and debugging & workarounds for app breaking bugs for each (platform, printer brand, printer model year) tuple combo.
(That was idealized - actually there may be ~5 alternative driver APIs even on a single platform each with its own strengths)
(That was idealized - actually there may be ~5 alternative driver APIs even on a single platform each with its own strengths)