A method and system which a) analyzes data to be printed, as well as the capabilities,
characteristics, and resources available taking into account initial processing
performed on a "host" system, transferring of the data stream to the printer over
a communications link, and receiving of the data and performing additional processing
as required to deliver the data to a print engine for printing; and b) distributes
the processing in an optimal way between the host and the printer so as to best
achieve the desired result. By moving processing to the host or to the printer,
a page can be processed and printed faster. Further, an entire document can be
printed faster by such distribution on a page by page, or selected portions of
a page basis.