Name: jh34982 Date: 10/26/99
We need to fix printing so that it works in all cases. This
includes printing components, printing in plug-in, and
more GDI/Postscript support. We need to try to unify the code
for 1.1 and 1.2 printing wherever possible because there
is a lot of redundant work and we end up solving the same
We also need to track what is going on in JSR 6, Unified
Printing API. This may entail adding new classes to better
support the JINI printing model (e.g. adding an Attributes
class, similar to Job/Page Attributes in java.awt).
The Java 2D printing API was introduced in Java 2 SE, Version 1.2.
The API was designed to support sophisticated document printing, but
time constraints meant that the implementation was primarily focused
on being able to print all 2D graphics.
In subsequent releases (V 1.2.2 and V1.3) there were implementation
enhancements only, focused on improving printing performance for many
typical applications, such as web pages, reports etc, which involve
text, some small number of graphic images, and occasional simple 2D
The result of this work is that 2D printing in 1.3 is hugely improved in
robustness, completeness, quality and performance compared to earlier releases.
Moving forward in releases after Java 2 SE, Version 1.3, the 2D printing
API needs to be enhanced further in implementation, and also to include
new APIs to support more sophisticated printing applications.
The need for these new APIs is demonstrated by numerous RFE's and also
the formation of the Unified Printing Expert Group (JSR-006) and the
associated work of the JINI printing working group.
The following are the currently expected items to be implemented for
the "merlin" release of Java 2 SE.
1) 2D printing will be enhanced in a number of ways
a) additional page control and attributes
b) additional job control and attributes
c) printer enumeration & description
d) printer capabilities queriying (such as duplex capability)
e) cross platform print and page dialogs
f) improved quality and consistency in page imaging
g) support component style printing (AWT printing)
2) Enhancements 1(a) to 1(d) above to the 2D printing API will be designed to
integrate well with the results of the JINI printer working group and
JSR-006 expert group.
3) As a benefit of 1(g) above, AWT's page imaging and job control
will be reimplemented on top of 2D printing to reduce implementation
size & duplication. This will probably be via means of
an adapter layer which could also be the foundation for more easily
integrating alternate implementations for accessing JINI enabled
printers, or allowing a printer driver API implementation on Solaris
which might generate output suitable for other printer languages than
PostScript. Merlin is not expected to deliver such capabilities, only
to lay the foundation for this in a later release.
Apart from the work directly on 2D printing, we also expect other groups
to begin to make more direct use of the 2D printing API in merlin as
1) Appletviewer will use 2D printing API so it can print applets which
use 2D graphics.
2) Selected Swing components will be enhanced to directly support printing
via the 2D printing. ie a printer friendly view of the model.
3) Headless Java will support 2D printing in an environement with no
These latter features need commitment from groups other than 2D, but we believe
such commitments have been made.