Book (Java SE 22 & JDK 22)
Description: declaration: module: java.desktop, package: java.awt.print, class: Book
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 Details

  - ### Book

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

- ## Method Details

  - ### 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`