|
GEOS SDK TechDocs
|
|
3 How Jobs Get Printed
|
3.2 Chronology
Printing involves the concerted effort of several objects running in different threads. The most important pieces of the printing system are
-
PrintControl
-
The printing system is big and would be difficult to interact with if not for the Print Control, which acts as a sort of intermediary. This object is a member of the
PrintControlClass
, a GenControl subclass provided by the spool library. It handles the UI, communication with the spool thread, and most other printing functions. Every geode which is going to print includes its own Print Control, placing the control object in its generic tree.
-
Print Output
-
The Print Output is an object (often the process object) chosen by the geode when creating the Print Control. This object is in charge of building print jobs and must be prepared to provide page descriptions whenever it receives a
MSG_PRINT_START_PRINTING
from the Print Control.
-
Spooler
-
The Spooler handles most of the important "behind the scenes" work of printing. As mentioned, it handles the scheduling of jobs and manages the operations by which generic print jobs are translated for specific printers.
-
Printer Driver
-
GEOS printer drivers handle the back end of printing. GEOS has many printer drivers, each of which serves one or more models of printer. The driver supplies the Spooler with information about the printer and makes some final adjustments to the translated print job to get it ready for the specific printer.
|
GEOS SDK TechDocs
|
|
3 How Jobs Get Printed
|
3.2 Chronology