EPOC handles printing as a special case of drawing to a device context. Printing functionality, apart from the print job setup classes in this API, belongs to the Graphics/Printing API in the System sub-system.
Device families may provide stock printing dialogs for users to initiate and control print jobs. It is normal for applications that provide printing to supply print job setup and other printing objects to these dialogs, which can then use them as appropriate.
The setup encapsulates settings that need to be initialised
before executing a print job. These include the printer device to print to, the
page orientation and size, margins, and header and footer. It can also be used
to start a print job or print preview. It is provided by
CPrintSetup
.
Margins are part of the print job setup, and apply to a whole
document. The class is TPageMargins
.
Headers and footers are also part of the print job setup, and can
consist of rich text, plus fields for page number, total number of pages,
current date or time and filename. The class is
CHeaderFooter
.
Print parameters encapsulate the number of copies and the number
of the first and last page to be printed in a print job. They are associated
with a particular print request. The class is
TPrintParameters
.
Once a print job has begun, it can call an observer interface to
report the progress of the job. Typically, an application uses a stock print
progress dialog as the observer, rather than implementing it directly. The
class is MPrintProcessObserver
.