Basic printing support
for the Java platform was first introduced in the Java Development
Kit, version 1.1 in 1997. The JDK 1.1 printing API provided
developers with a basic framework for printing the user-interface
content from client applications. JDK 1.1 printing, also called the
AWT Printing API, was designed around the java.awt.PrintJob class,
which encapsulates a printing request. The PrintJob class creates a
subclass of Graphics, which implements the rendering calls to image
the page.
In 1998, the JDK 1.2 advanced
printing on the Java platform with the java.awt.print package by
allowing applications to print all Java 2D graphics, which includes
2D graphics, text, and images.
For the JDK version 1.3, the
JobAttributes and PageAttributes classes were introduced to AWT
printing so that client applications could specify the properties
of a print job and the attributes of a page.
The two APIs primarily support
page imaging, which is the rendering and formatting of a page and
is one component of a printing subsystem. Although a client can
choose a printer from a print dialog and can specify printing
attributes using JobAttributes and PageAttributes, neither the AWT
nor Java 2D printing APIs support discovery of printers based on
their capabilities, which is another key component of any printing
subsystem. For more details on the history of printing on the Java
platform refer to Printing on the Java
Platform.