Book (Java SE 12 & JDK 12 )
Keywords: java.awt.print.Book class

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
    Constructor | Description
    --- | ---
    `Book()` | Creates a new, empty `Book`.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `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`