Rather than the client describing the
print data format with a MIME type, the client can supply a Java
object from which a print service determines the print data format.
For example, the Java object can encapsulate a PostScript™
document. Instead of the client explicitly describing the document
as PostScript™ with a MIME type, the client can wrap a
reference to the document in a Java object, which the print service
inspects to determine that the format is PostScript™. Because
the print data is delivered to the print service through the Java
object, the class that the Java object implements is the
The DocFlavor class has an inner
class called DocFlavor.SERVICE_FORMATTED that contains DocFlavor
object constants representing service-formatted print data. Each of
these constants has a MIME type of
"application/x-java-jvm-local-objectref", which indicates
that the client will supply a reference to a Java object
implementing the interface named as the representation class.
The three DocFlavor object
constants contained in DocFlavor.SERVICE_FORMATTED each represent a
common representation class name used with service-formatted print
DocFlavor.SERVICE_FORMATTED.PAGEABLE:The client supplies an object
that implements thejava.awt.print.Pageable interface, which
represents a set of pages to be printed. The printer calls methods
in that interface to obtain the pages to be printed, one by one.
For each page, the printer supplies a graphics context and prints
whatever the client draws in that graphics context.
DocFlavor.SERVICE_FORMATTED.PRINTABLE:The client supplies an object
that implements the java.awt.print.Printable interface, which is
responsible for drawing the contents of each page. The printer
calls methods in that interface to obtain the pages to be printed,
one by one. For each page, the printer supplies a graphics context
and prints whatever the client draws in that graphics context.
DocFlavor.SERVICE_FORMATTED.RENDERABLE_IMAGE:The client supplies an
object that implements interface
java.awt.image.renderable.RenderableImage, which represents an
image that can be manipulated in a rendering-independent manner and
can be rendered to various contexts, such as a printer, without
compromising quality. The printer calls methods in the interface to
obtain the image to be printed.