Since it appears printing is about to become a thing (I wrote in 2014, LOL), I think we need to start thinking about a generic printer abstraction. I'm thinking this should have an architecture similar to the debugger where we have OSD-level code handling the platform specifics of what is otherwise a generalized abstraction.
The general idea:
- An emulated printer creates a new printer abstraction by giving the color depth and either the absolute pixel resolution of a page or paper size plus DPI.
- The abstraction would supply both continuous-feed and discrete-page modes. In a concession to the reality of modern printers the output would ultimately be split into pages either way.
- Each time you start a page you get a new page bitmap to draw on (a core bitmap so you can use drawgfx stuff on it?)
- OSD would provide a window similar to a PDF viewer where you view one page at a time with a strip of page thumbnails on the side of the window, and the ability to send one or more pages to the system's actual printer. A 'quiet mode' where it doesn't show the printer window unless the user requests it would be handy, as would a 'just go ahead and print everything to the system's real printer without user interaction' option.
- Obviously some way for the user to discard pages they don't want and save memory would be useful as well.
- Optional green-bar paper emulation mode?
This is by no means completely thought out, it's more of an idea sketch that I think could be workable.