Re: Linux v Windows
Sorry, this is going to be a long, historical post, explaining why there is actually no such thing as a 'winprinter', although possibly a more accurate description of GDI printer may be more appropriate.
Back in the day, printers used to have Page Description Languages, such as ESC/P for Epson printers, and PCL for HP printers (and many others. Each manufacturer defined their own). These were often supersets of plain ol' ASCII in most cases, with some escape sequences to allow things like switching to different fonts, superscript, subscript, bold and italics etc.
In fact, many printers still do. Last time I looked, Epson still included ESC/P in their printers.
The problem with this type of support was that you were limited by what the printer could do, and how well the text formatters knew about them. Anybody remembering Epson FX80 printers used from Wordstar or any similar software would be quite familiar with this, especially loading a printer description into the word processor during the setup.
Some printers, however, were quite 'clever' and included very high level PDLs, examples being PostScript and the later versions of PCL, and these tended to the be printers that would be used on UNIX systems. This was through the very hard to configure successfully System V LP system. Most of the time, this required the formatting program to be aware of the printer type, and LP used to just shunt the bytes to the printer. Some support for slightly more intelligent printers crept in, but generally all they really handled was pagination rather than formatting.
Adobe and/or Microsoft (and possibly others) had a bright idea. Most dot matrix printers had a graphics mode, and they decided to take the responsibility for formatting the page away from the printer, do the formatting to a bitmap in memory, and then send the page out to the printer as a graphics image. What this allowed them to do was to ignore the limitations of the printers built-in capabilities, and use any font, size or any other graphics construct that they cared to code into their software.
When ink-jet printers came along, even if they did have a high level PDL built in, it tended to be ignored, and rendering the page still happened in the computer, sending it out as a graphics image. This became the standard way of handling printers in Windows and MacOS, and eventually became abstracted in the OS, so that the software would use an OS defined printer format that would be rendered by OS components before sending to the printer.
Eventually, some printer manufacturers decided that it was pointless putting significant processing power in the printer, and thus were true 'winprinters' born, especially those using the Graphics Device Interface (GDI) that is a part of Windows. Basically these printers were so dumb that they could do nothing themselves other than take a bitmap of the page, normally in an unpublished proprietary format. But that did not alter the fact that other more capable printers were effectively being treated the same!
The problem, as far as UNIX and Linux was concerned, was that for may years after rendering was being done in other OSs, they still used the old PDL model to drive printers. So printers that did not have any PDL at all could not be used. This seriously limited what could be done without some serious knowledge of the printer and the way it was attached.
Step up Ghostscript, which was originally a way of displaying Postscript on screen. Some clever bod realised that you could use PostScript as a generic PDL, and then use Ghostscript in the computer to render the page into a bitmap, and then send this out to the printer with a suitable graphics converter. Suddenly, it became possible to use very basic printers on UNIX/Linux, and get reasonable results, as almost all programs knew how to write PostScript. Eventually, this become Ghostprint, which became common in most Linuxes.
Later, a similar project started using the GIMP (GNU Image Manipulation Program) backend print drivers for a similar print method, and this became Gutenprint, which largely replaced Ghostprint by default in most of the major distros.
When Apple decided to switch MacOS to a BSD UNIX platform (OSX), they decided that the previous print backends were clumsy, and needed improvement. In one of the most useful things that Apple have ever done, they wrote a common backend for all UNIX-like OSs, which is where the Common UNIX Printing System (CUPS) came from. Because CUPS was written as an Open Source project, it has been wildly successful, and has almost completely replaced the older print systems in Linux and UNIX.
So nowadays, even UNIX and Linux effectively drive almost all printers in the same way as Windows, and can often be configured to use so-called winprinters, including some that have required reverse-engineering the unpublished GDI-printer formats.