Module java.desktop
Package java.awt.print

## Class Book

- java.lang.Object
- - java.awt.print.Book

All Implemented Interfaces:
  `Pageable`

    public class Book
    extends Object
    implements Pageable

The `Book` class provides a representation of a document in which pages may have different page formats and page painters. This class uses the `Pageable` interface to interact with a `PrinterJob`.

See Also:
  `Pageable`, `PrinterJob`

### Field Summary

### Fields declared in interface java.awt.print.Pageable

`UNKNOWN_NUMBER_OF_PAGES`

### Constructor Summary

Constructors
`Book()` Creates a new, empty `Book`.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `append​(Printable painter, PageFormat page)` Appends a single page to the end of this `Book`.
`void` `append​(Printable painter, PageFormat page, int numPages)` Appends `numPages` pages to the end of this `Book`.
`int` `getNumberOfPages()` Returns the number of pages in this `Book`.
`PageFormat` `getPageFormat​(int pageIndex)` Returns the `PageFormat` of the page specified by `pageIndex`.
`Printable` `getPrintable​(int pageIndex)` Returns the `Printable` instance responsible for rendering the page specified by `pageIndex`.
`void` `setPage​(int pageIndex, Printable painter, PageFormat page)` Sets the `PageFormat` and the `Painter` for a specified page number.

### Methods declared in class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### Book

    public Book()

Creates a new, empty `Book`.

### Method Detail

#### getNumberOfPages

    public int getNumberOfPages()

Returns the number of pages in this `Book`.

Specified by:
  `getNumberOfPages` in interface `Pageable`
Returns:
  the number of pages this `Book` contains.

#### getPageFormat

    public PageFormat getPageFormat​(int pageIndex)
                             throws IndexOutOfBoundsException

Returns the `PageFormat` of the page specified by `pageIndex`.

Specified by:
  `getPageFormat` in interface `Pageable`
Parameters:
  `pageIndex` - the zero based index of the page whose `PageFormat` is being requested
Returns:
  the `PageFormat` describing the size and orientation of the page.
Throws:
  `IndexOutOfBoundsException` - if the `Pageable` does not contain the requested page

#### getPrintable

    public Printable getPrintable​(int pageIndex)
                           throws IndexOutOfBoundsException

Returns the `Printable` instance responsible for rendering the page specified by `pageIndex`.

Specified by:
  `getPrintable` in interface `Pageable`
Parameters:
  `pageIndex` - the zero based index of the page whose `Printable` is being requested
Returns:
  the `Printable` that renders the page.
Throws:
  `IndexOutOfBoundsException` - if the `Pageable` does not contain the requested page

#### setPage

    public void setPage​(int pageIndex,
                        Printable painter,
                        PageFormat page)
                 throws IndexOutOfBoundsException

Sets the `PageFormat` and the `Painter` for a specified page number.

Parameters:
  `pageIndex` - the zero based index of the page whose painter and format is altered
  `painter` - the `Printable` instance that renders the page
  `page` - the size and orientation of the page
Throws:
  `IndexOutOfBoundsException` - if the specified page is not already in this `Book`
  `NullPointerException` - if the `painter` or `page` argument is `null`

#### append

    public void append​(Printable painter,
                       PageFormat page)

Appends a single page to the end of this `Book`.

Parameters:
  `painter` - the `Printable` instance that renders the page
  `page` - the size and orientation of the page
Throws:
  `NullPointerException` - If the `painter` or `page` argument is `null`

#### append

    public void append​(Printable painter,
                       PageFormat page,
                       int numPages)

Appends `numPages` pages to the end of this `Book`. Each of the pages is associated with `page`.

Parameters:
  `painter` - the `Printable` instance that renders the page
  `page` - the size and orientation of the page
  `numPages` - the number of pages to be added to the this `Book`.
Throws:
  `NullPointerException` - If the `painter` or `page` argument is `null`