Book (Java Platform SE 8 )
Keywords: java.awt.print.Book class
Date: 2026-08-19

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 inherited from interface java.awt.print.Pageable

      `UNKNOWN_NUMBER_OF_PAGES`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Book()` Creates a new, empty `Book`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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 inherited from 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`

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.