The Java TM Tutorial

| Start of Tutorial > Start of Trail > Start of Lesson | Search

Trail: 2D Graphics
Lesson: Printing

## Printing a Collection of Pages

> When you need more control over the individual pages in a print job, you can use a pageable job instead of a printable job. The simplest way to manage a pageable job is to use the `Book` class, which represents a collection of pages.

### Example: SimpleBook

> The `SimpleBook` program uses a `Book` to manage two page painters: `PaintCover` is used for the cover page, and `PaintContent` is used for the content page. The cover page is printed in landscape mode, whereas the content page is printed in portrait mode.

> Once the `Book` is created, pages are added to it with the `append` method. When you add a page to a `Book`, you need to specify the `Printable` and `PageFormat` to use for that page.

> >     // In the program's job control code...
> >     // Get a PrinterJob
> >     PrinterJob job = PrinterJob.getPrinterJob();

> >     // Create a landscape page format
> >     PageFormat landscape = job.defaultPage();
> >     landscape.setOrientation(PageFormat.LANDSCAPE);

> >     // Set up a book
> >     Book bk = new Book();
> >     bk.append(new PaintCover(), job.defaultPage());
> >     bk.append(new PaintContent(), landscape);

> >     // Pass the book to the PrinterJob
> >     job.setPageable(bk);

> The `setPageable` method is called on the `PrinterJob` to tell the printing system to use the `Book` to locate the appropriate rendering code.

> You can find the full program in `SimpleBook.java`.

| Start of Tutorial > Start of Trail > Start of Lesson | Search