In this case, the painter is responsible for rendering each page as it is requested by the system. The system may request pages in order or out of order, and it may request the same page more than once. A given printer job, represented by an instance of PrinterJob , can be either printable or pageable. Printable jobs are simple jobs that consist of a single page painter. Pageable jobs represent documents.
Pageable jobs can consist of multiple page formats, each associated with a Printable page painter.
Pageable jobs also have the advantage of allowing the system to find out in advance the number of pages in the document, so that the user can choose which pages to print by means of the print dialog. The Java Developer Connection's online printing tutorial has deeper and broader information on printing than this article attempts to provide.