Printing
Earlier in this
chapter,
we hinted at the possibility that you
could draw the same stuff on the screen and the printer. It’s
true; all you really need to do is get a
Graphics2D that represents a printer rather than
an area of the screen. Java 2’s Printing API provides the
necessary plumbing. There isn’t room here to describe the whole
Printing API, but we will provide you with a short example that will
let you get your feet wet (and your paper blackened).
The printing classes are tucked away in the
java.awt.print
package. You can print anything that implements the
Printable
interface. This interface has only
one method—you guessed it, print( ). This
method, like the paint( ) methods we’ve
already worked with, accepts a Graphics object
that represents the drawing surface of the printer’s page. It
also accepts a PageFormat object that encapsulates
information about the paper on which you’re printing. Finally,
print( ) is passed the number of the page that is
being rendered.
Your print( ) implementation should either render
the requested page or state that it doesn’t exist. You can do
this by returning special values from print( ),
either Printable.PAGE_EXISTS or
Printable.NO_SUCH_PAGE.
You can control a print job, including showing print and page setup
dialogs, using the
PrinterJob
class. The following class will enable
you to get something on paper:
//file: UnbelievablySimplePrint.java import java.awt.*; import java.awt.print.*; public class UnbelievablySimplePrint implements ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access