Printers are pretty plug’n’play these days, at least until something technical goes wrong. Getting exactly what you want on paper can be pretty tough, though. I wrote an entire printing stack from scratch for an embedded system, but that was for a very specific set of models from a single manufacturer. It actually worked every time, especially when there were errors and warnings, but it took actual effort.