Re:NeXTstep Manual, Systems Programming with Objective-C and...
by mrpippy on Sunday June 05, 2016 @11:57PM
(#11844555)
OS X didn't start using CUPS until 10.2.
I don't remember if the 10.0/10.1 printing architecture was a carryover of the NeXT stuff or something new, but I don't remember it being well liked.
Hmm...CUPS came way after NeXTStep, way after the NeXT's acquisition of Apple acquisition in fact (wikipedia says 1999). NeXT itself just used lpr/lpd, that was it.
Of course, being Unix, you could hook into the lpd system and add your own filters. NeXT itself did this, using the on-board DPS to RIP for the NeXT Laser Printer (a Canon laser engine) and the NeXT Color Printer (a branded version of the Canon 360 dpi bubblejet). There was a quite a bit of trickiness involved, contacting the WindowServer from a background process and using high-resolution/high-bit-depth rasterising, but it was doable.
Third parties could also do this, for example I made drivers for anything from low-end Epson, HP and Canon ink jet printers (including a more advanced driver for the NCP) all the way to high end proof printers, film recorders and color laser copiers ( $50-90K items at the time). Others hooked up phototypesetters. So you definitely could print to anything as well, and everything would then come out in beautiful Postscript Level 2, with amazing WYSIWYG fidelity.
While the straightforward approach of doing this did require a printer with a raster interface, most low-end printers had that and when there was a print-head, a line of buffering was sufficient. It was more the mid-level laser printers that were a problem, because lasers required a full-page buffer and some just didn't have that much memory.
One time there was a Mission Critical Custom App (MCCA) deployment at a large pharmaceutical company that was in peril because they had several hundred (or thousand? I don't remember) IBM laser printers that did not have enough memory for a raster bitmap...and no-one had thought of that beforehand. Oops. No worries, I created a driver that extracted the text (they were only interested in the text) and precise positioning information and then sent commands in the printer's command language (not PCL or anything else that was well-known) to position/output that text.
Of course, Adobe didn't like all of that printing, and so they continued to tighten the license agreement and hike the fees for print-use of DPS.