public interface Printable
Printable
interface is implemented by the print
methods of the current page painter, which is called by the printing system to render a page. When building a Pageable
, pairs of PageFormat
instances and instances that implement this interface are used to describe each page. The instance implementing Printable
is called to print the page's graphics. A Printable(..)
may be set on a PrinterJob
. When the client subsequently initiates printing by calling PrinterJob.print(..)
control
is handed to the printing system until all pages have been printed. It does this by calling Printable.print(..)
until all pages in the document have been printed. In using the Printable
interface the printing commits to image the contents of a page whenever requested by the printing system.
The parameters to Printable.print(..)
include a PageFormat
which describes the printable area of the page, needed for calculating the contents that will fit the page, and the page index, which specifies the zero-based print stream index of the requested page.
For correct printing behaviour, the following points should be observed:
Printable.print(..)
with page indexes which increase monotonically, although as noted above, the Printable
should expect multiple calls for a page index and that page indexes may be skipped, when page ranges are specified by the client, or by a user through a print dialog. Printable
must inspect and honour the supplied PageFormat parameter as well as the page index. The format of the page to be drawn is specified by the supplied PageFormat. The size, orientation and imageable area of the page is therefore already determined and rendering must be within this imageable area. This is key to correct printing behaviour, and it has the implication that the client has the responsibility of tracking what content belongs on the specified page. Printable
is obtained from a client-supplied Pageable
then the client may provide different PageFormats for each page index. Calculations of page breaks must account for this. Modifier and Type | Field | Description |
---|---|---|
static final int |
NO_SUCH_PAGE |
Returned from print to signify that the pageIndex is too large and that the requested page does not exist. |
static final int |
PAGE_EXISTS |
Returned from print(Graphics, PageFormat, int) to signify that the requested page was rendered. |
Modifier and Type | Method | Description |
---|---|---|
int |
print |
Prints the page at the specified index into the specified Graphics context in the specified format. |
static final int PAGE_EXISTS
print(Graphics, PageFormat, int)
to signify that the requested page was rendered.static final int NO_SUCH_PAGE
print
to signify that the pageIndex
is too large and that the requested page does not exist.int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException
Graphics
context in the specified format. A PrinterJob
calls the Printable
interface to request that a page be rendered into the context specified by graphics
. The format of the page to be drawn is specified by pageFormat
. The zero based index of the requested page is specified by pageIndex
. If the requested page does not exist then this method returns NO_SUCH_PAGE; otherwise PAGE_EXISTS is returned. The Graphics
class or subclass implements the PrinterGraphics
interface to provide additional information. If the Printable
object aborts the print job then it throws a PrinterException
.graphics
- the context into which the page is drawnpageFormat
- the size and orientation of the page being drawnpageIndex
- the zero based index of the page to be drawnpageIndex
specifies a non-existent page.PrinterException
- thrown when the print job is terminated.
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/java/awt/print/Printable.html