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 representation class.
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 data:
DocFlavor.SERVICE_FORMATTED.PAGEABLE
: The client supplies an object
that implements the java.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.As stated in the Introduction,
applications that wrap 2D graphics into a Java object can use the
service-formatted print data DocFlavor
constants. See Printing and Streaming 2D
Graphics for more information.