* <P>
* <LI>
* Printable object -- The client supplies an object that implements interface
* {@link java.awt.print.Printable Printable}.
* 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 whatever the
* client draws in that graphics context gets printed.
* <P>
* <LI>
* Pageable object -- The client supplies an object that implements interface
* {@link java.awt.print.Pageable Pageable}. 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 whatever
* the client draws in that graphics context gets printed.
* </UL>
* <P>
* <HR>
* <P>
* <HR>
* <H3>Pre-defined Doc Flavors</H3>
* A Java Print Service instance is not <B><I>required</I></B> to support the
* following print data formats and print data representation classes. In
* fact, a developer using this class should <b>never</b> assume that a
* particular print service supports the document types corresponding to
* these pre-defined doc flavors. Always query the print service
* to determine what doc flavors it supports. However,
* developers who have print services that support these doc flavors are
* encouraged to refer to the predefined singleton instances created here.
* <UL>
* <LI>
* Plain text print data provided through a byte stream. Specifically, the
* following doc flavors are recommended to be supported:
* <BR>·
* <CODE>("text/plain", "java.io.InputStream")</CODE>
* <BR>·
* <CODE>("text/plain; charset=us-ascii", "java.io.InputStream")</CODE>
* <BR>·
* <CODE>("text/plain; charset=utf-8", "java.io.InputStream")</CODE>
* <P>
* <LI>
* Renderable image objects. Specifically, the following doc flavor is
* recommended to be supported:
* <BR>·
* <CODE>("application/x-java-jvm-local-objectref", "java.awt.image.renderable.RenderableImage")</CODE>
* </UL>
* <P>
* A Java Print Service instance is allowed to support any other doc flavors
* (or none) in addition to the above mandatory ones, at the implementation's
* choice.
* <P>
* Support for the above doc flavors is desirable so a printing client can rely
* on being able to print on any JPS printer, regardless of which doc flavors
* the printer supports. If the printer doesn't support the client's preferred
* doc flavor, the client can at least print plain text, or the client can
* convert its data to a renderable image and print the image.
* <P>
* Furthermore, every Java Print Service instance must fulfill these
* requirements for processing plain text print data:
* <UL>
* <LI>
* The character pair carriage return-line feed (CR-LF) means
* "go to column 1 of the next line."
* <LI>
* A carriage return (CR) character standing by itself means
* "go to column 1 of the next line."
* <LI>
* A line feed (LF) character standing by itself means
* "go to column 1 of the next line."
* <LI>
* </UL>
* <P>
* The client must itself perform all plain text print data formatting not
* addressed by the above requirements.
* <P>
* <H3>Design Rationale</H3>
* <P>
* Class DocFlavor in package javax.print.data is similar to class
* {@link java.awt.datatransfer.DataFlavor DataFlavor}. Class
* <code>DataFlavor</code>
* is not used in the Java Print Service (JPS) API
* for three reasons which are all rooted in allowing the JPS API to be
* shared by other print services APIs which may need to run on Java profiles
* which do not include all of the Java Platform, Standard Edition.
* <OL TYPE=1>
* <LI>
* The JPS API is designed to be used in Java profiles which do not support
* AWT.
* <P>
* <LI>
* The implementation of class <code>java.awt.datatransfer.DataFlavor</code>
* does not guarantee that equivalent data flavors will have the same
* serialized representation. DocFlavor does, and can be used in services
* which need this.
* <P>
* <LI>
* The implementation of class <code>java.awt.datatransfer.DataFlavor</code>
* includes a human presentable name as part of the serialized representation.
* This is not appropriate as part of a service matching constraint.
* </OL>
=4= |