swing.addon.util
Class HardcopyWriter

java.lang.Object
  |
  +--java.io.Writer
        |
        +--swing.addon.util.HardcopyWriter

public class HardcopyWriter
extends java.io.Writer

A character output stream that sends output to a printer.


Inner Class Summary
static class HardcopyWriter.PrintCanceledException
          This is the exception class that the HardcopyWriter constructor throws when the user clicks "Cancel" in the print dialog box.
 
Field Summary
protected  int charnum
           
protected  int chars_per_line
           
protected  int charwidth
           
protected  java.awt.Font font
           
protected  int fontsize
           
protected  java.awt.Font headerfont
           
protected  java.awt.FontMetrics headermetrics
           
protected  int headery
           
protected  int height
           
protected  java.awt.PrintJob job
           
protected  java.lang.String jobname
           
protected  int lineascent
           
protected  int lineheight
           
protected  int linenum
           
protected  int lines_per_page
           
protected  java.awt.FontMetrics metrics
           
protected  java.awt.Graphics page
           
protected  int pagedpi
           
protected  int pagenum
           
protected  java.awt.Dimension pagesize
           
protected static java.util.Properties printprops
           
protected  int tabwidth
           
protected  java.lang.String time
           
protected  int width
           
protected  int x0
           
protected  int y0
           
 
Fields inherited from class java.io.Writer
lock
 
Constructor Summary
HardcopyWriter(java.awt.Frame frame, java.lang.String jobname, int fontsize, double leftmargin, double rightmargin, double topmargin, double bottommargin, int tabwidth)
          The constructor for this class has a bunch of arguments: The frame argument is required for all printing in Java.
 
Method Summary
 void close()
          This is the close() method that all Writer subclasses must implement.
 void flush()
          This is the flush() method that all Writer subclasses must implement.
 int getCharactersPerLine()
          Return the number of columns of characters that fit on the page
 int getLinesPerPage()
          Return the number of lines that fit on a page
protected  void newline()
          This internal method begins a new line
protected  void newpage()
          This internal method begins a new page and prints the header.
 void pageBreak()
          End the current page.
 void setFontStyle(int style)
          Set the font style.
 void write(char[] buffer, int index, int len)
          This is the write() method of the stream.
 
Methods inherited from class java.io.Writer
write, write, write, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

job

protected java.awt.PrintJob job

page

protected java.awt.Graphics page

jobname

protected java.lang.String jobname

fontsize

protected int fontsize

time

protected java.lang.String time

pagesize

protected java.awt.Dimension pagesize

pagedpi

protected int pagedpi

font

protected java.awt.Font font

headerfont

protected java.awt.Font headerfont

metrics

protected java.awt.FontMetrics metrics

headermetrics

protected java.awt.FontMetrics headermetrics

x0

protected int x0

y0

protected int y0

width

protected int width

height

protected int height

headery

protected int headery

charwidth

protected int charwidth

lineheight

protected int lineheight

lineascent

protected int lineascent

chars_per_line

protected int chars_per_line

lines_per_page

protected int lines_per_page

charnum

protected int charnum

linenum

protected int linenum

pagenum

protected int pagenum

printprops

protected static java.util.Properties printprops

tabwidth

protected int tabwidth
Constructor Detail

HardcopyWriter

public HardcopyWriter(java.awt.Frame frame,
                      java.lang.String jobname,
                      int fontsize,
                      double leftmargin,
                      double rightmargin,
                      double topmargin,
                      double bottommargin,
                      int tabwidth)
               throws HardcopyWriter.PrintCanceledException
The constructor for this class has a bunch of arguments: The frame argument is required for all printing in Java. The jobname appears left justified at the top of each printed page. The font size is specified in points, as on-screen font sizes are. The margins are specified in inches (or fractions of inches).
Method Detail

close

public void close()
This is the close() method that all Writer subclasses must implement. Print the pending page (if any) and terminate the PrintJob.
Overrides:
close in class java.io.Writer

flush

public void flush()
This is the flush() method that all Writer subclasses must implement. There is no way to flush a PrintJob without prematurely printing the page, so we don't do anything.
Overrides:
flush in class java.io.Writer

getCharactersPerLine

public int getCharactersPerLine()
Return the number of columns of characters that fit on the page

getLinesPerPage

public int getLinesPerPage()
Return the number of lines that fit on a page

newline

protected void newline()
This internal method begins a new line

newpage

protected void newpage()
This internal method begins a new page and prints the header.

pageBreak

public void pageBreak()
End the current page. Subsequent output will be on a new page.

setFontStyle

public void setFontStyle(int style)
Set the font style. The argument should be one of the font style constants defined by the java.awt.Font class. All subsequent output will be in that style. This method relies on all styles of the Monospaced font having the same metrics.

write

public void write(char[] buffer,
                  int index,
                  int len)
This is the write() method of the stream. All Writer subclasses implement this. All other versions of write() are variants of this one
Overrides:
write in class java.io.Writer