When submitting a print job to a
printer, the client provides the attributes describing the
characteristics of the print data, such as the document name, and
how the print data should be printed, such as double-sided, five
copies. If a print job consists of multiple pieces of print data,
different pieces might have different processing instructions, such
as 8 x 11 inch media for the first document, and 11 x 17 inch media
for another document.
Once the printer starts
processing the print job, additional information about the job
becomes available, which might include: the job state (such as
completed or queued) and the number of pages printed so far. These
pieces of information are also attributes. Attributes can also
describe the printer itself, such as: the printer name, the printer
location, and the number of jobs queued.
The Java Print Service API defines
these different kinds of attribute roles with five subinterfaces of
- PrintRequestAttribute is used by
an application to represents a setting applied to an entire print
job and to specify how the entire print job should be printed.
- DocAttribute is used by an
application to specify a characteristic of a single document and
the print job settings to be applied to the document.
- PrintJobAttribute is used by a
print service to report how a job is being printed. These values
will usually be identical the requested attribute values. However,
if the printer does not support the value of a print request
attribute then the corresponding print job attribute contains a
different value that is supported by the printer
- PrintServiceAttribute is used by
a print service to report the status of the print service.
- SupportedValuesAttribute is used
by a print service o indicate the range of values supported for a
request attribute. For example, a printer might support only a
certain range of copies. When a print service is queried for the
supported range of copies, it returns this information in a
CopiesSupported object, which implements
Many attributes can be members of
more than one role. For example, the Media attribute belongs to the
doc, print job, and print request roles because the Media attribute
can describe the paper size, the paper tray, or paper type. In
fact, most doc attributes are also request attributes, and all
request attributes are also job attributes.
The next section describes how to
collect attributes together into attribute sets, which also have