javax.print
, javax.print.attribute
,
javax.print.attribute.standard
, and javax.print.event
.javax.print
package
is the main package of the API. It contains classes and interfaces
that you use to:
PrintServiceLookup
to
locate print services that have the capabilities to satisfy the
application's print request. For example, to print a double-sided
document, the application first needs to find printers that have
the double-sided printing capability.
An implementation of
the PrintService
interface represents an actual printer that might
be returned from an implementation of PrintServiceLookup
. The
PrintService
can be queried to determine its capabilities by
invoking one of the many methods that return the print
service's supported attributes. The Locating Services section
of the Printing and Streaming
Documents chapter discusses using PrintService
and
PrintServiceLookup
.
The JDK includes
PrintServiceLookup
implementations that can locate the standard
platform printers. To locate other types of printers, such as IPP
printers or JINI printers, a print-service provider can write
implementations of PrintServiceLookup
. The print-service provider
can dynamically install these PrintServiceLookup
implementations
using the SPI JAR file specification.
Rather than sending
data to a printer, an application can also print the data to an
output stream using a StreamPrintService
, which allows the
application to convert the data to different formats. To obtain a
StreamPrintService
, an application uses the lookup methods of the
StreamPrintServiceFactory
abstract class. This class is similar to
that of the PrintServiceLookup
class in that it also discovers
print services. The chapter Printing and Streaming
Documents describes using StreamPrintServiceFactory
and
StreamPrintService
. A StreamPrintService
can also be used to send
2D graphics to an output stream. See Printing and Streaming 2D
Graphics for more details.
DocFlavor
class
represents the print data format, such as JPEG or PostScript. A
DocFlavor
object consists of a MIME type describing the format, and
a representation class name, such as java.io.InputStream
, that
indicates how the document will be delivered to the service. As a
convenience, the JPS API also includes pre-defined DocFlavor
objects representing common data formats. The Specifying Document Types
chapter describes in more detail how to use DocFlavor
objects.DocPrintJob
class, which
provides the actual print
method. Before calling print
, the
application creates a Doc
object to encapsulate the print data and
the print request attributes, which are defined in the
javax.print.attribute
and javax.print.attribute.standard
packages.
The chapter Printing and
Streaming Documents discusses using Doc
and DocPrintJob
.
An application that is using the Java Print Service to print 2D
Graphics can use either the PrinterJob
class or the DocPrintJob
class. The chapter Printing and
Streaming 2D Graphics discusses using the Java Print
Service to print 2D Graphics.
The
javax.print.attribute
and javax.print.attribute.standard
packages
define print attributes, which describe a capability of a print
service, a characteristic of a document, an instruction for
processing a document or an entire print job, or the state of a
print job or printer.
The
javax.print.attribute
package describes the types of attributes and
how they can be collected into sets. The Attribute
interface is the
superinterface for all attributes. The javax.print.attribute
package includes classes and interfaces defining the five different
kinds of attributes, each of which describes the capabilities of
one piece of the printing process. For example, the
PrintRequestAttribute
interface defines attributes that clients use
to describe the characteristics of a print job, which might include
the number of copies to print.
The
javax.print.attribute.standard
package enumerates all of the
standard attributes supported by the API, most of which are
implementations of attributes specified in the IPP specification.
The Attributes chapter discusses the attribute API in more
detail.
javax.print.event
package contains classes that allow applications to register for
events on print jobs and print services. Read the Registering for Events
section for more information on registering for print job
events.