xmlgraphics-commons 1.2

org.apache.xmlgraphics.ps
Class PSGenerator

java.lang.Object
  extended by org.apache.xmlgraphics.ps.PSGenerator

public class PSGenerator
extends java.lang.Object

This class is used to output PostScript code to an OutputStream.

Version:
$Id: PSGenerator.java 549118 2007-06-20 14:27:03Z jeremias $

Field Summary
static java.lang.Object ATEND
          Deprecated. Please use DSCConstants.ATEND. This constant was in the wrong place.
static int DEFAULT_LANGUAGE_LEVEL
          Default postscript language level
static char LF
          Line feed used by PostScript
 
Constructor Summary
PSGenerator(java.io.OutputStream out)
          Creates a new instance.
 
Method Summary
 void commentln(java.lang.String comment)
          Writes a comment to the stream and ends the line.
 void concatMatrix(java.awt.geom.AffineTransform at)
          Concats the transformations matric.
 void concatMatrix(double[] matrix)
          Concats the transformations matrix.
 void concatMatrix(double a, double b, double c, double d, double e, double f)
          Concats the transformation matrix.
static java.lang.String convertRealToDSC(float value)
          Converts a value for use in DSC comments.
static java.lang.String convertStringToDSC(java.lang.String text)
          Converts text by applying escaping rules established in the DSC specs.
static java.lang.String convertStringToDSC(java.lang.String text, boolean forceParentheses)
          Converts text by applying escaping rules established in the DSC specs.
 void defineRect(double x, double y, double w, double h)
          Adds a rectangle to the current path.
static void escapeChar(char c, java.lang.StringBuffer target)
          Escapes a character conforming to the rules established in the PostScript Language Reference (Search for "Literal Text Strings").
 void flush()
          Flushes the OutputStream.
 java.lang.String formatDouble(double value)
          Formats a double value for PostScript output.
 java.lang.String formatDouble5(double value)
          Formats a double value for PostScript output (higher resolution).
 PSState getCurrentState()
          Returns the current graphics state.
 java.io.OutputStream getOutputStream()
          Returns the OutputStream the PSGenerator writes to.
 int getPSLevel()
          Returns the selected PostScript level.
 ResourceTracker getResourceTracker()
          Resturns the ResourceTracker instance associated with this PSGenerator.
 boolean isResourceSupplied(PSResource res)
          Deprecated. Use the isResourceSupplied() on ResourceTracker instead.
 void newLine()
          Writes a newline character to the OutputStream.
 void notifyResourceUsage(PSResource res, boolean needed)
          Deprecated. Use the notifyResourceUsageOnPage() on ResourceTracker instead
 void notifyStartNewPage()
          Deprecated. Use the notifyStartNewPage() on ResourceTracker instead.
 javax.xml.transform.Source resolveURI(java.lang.String uri)
          Attempts to resolve the given URI.
 boolean restoreGraphicsState()
          Restores the last graphics state of the rendering engine.
 void saveGraphicsState()
          Saves the graphics state of the rendering engine.
 void setPSLevel(int level)
          Sets the PostScript level that is used to generate the current document.
 void setResourceTracker(ResourceTracker resTracker)
          Sets the ResourceTracker instance to be associated with this PSGenerator.
 void useColor(java.awt.Color col)
          Establishes the specified color.
 void useDash(java.lang.String pattern)
          Establishes the specified dash pattern.
 void useFont(java.lang.String name, float size)
          Establishes the specified font and size.
 void useLineCap(int linecap)
          Establishes the specified line cap style.
 void useLineWidth(double width)
          Establishes the specified line width.
 void useRGBColor(java.awt.Color col)
          Deprecated. use useColor method instead
 void write(java.lang.String cmd)
          Writes a PostScript command to the stream.
 void writeByteArr(byte[] cmd)
          Writes encoded data to the PostScript stream.
 void writeDSCComment(java.lang.String name)
          Writes a DSC comment to the output stream.
 void writeDSCComment(java.lang.String name, java.lang.Object param)
          Writes a DSC comment to the output stream.
 void writeDSCComment(java.lang.String name, java.lang.Object[] params)
          Writes a DSC comment to the output stream.
 void writeln(java.lang.String cmd)
          Writes a PostScript command to the stream and ends the line.
 void writeResources(boolean pageLevel)
          Deprecated. Use the writeResources() on ResourceTracker instead.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_LANGUAGE_LEVEL

public static final int DEFAULT_LANGUAGE_LEVEL
Default postscript language level

See Also:
Constant Field Values

ATEND

public static final java.lang.Object ATEND
Deprecated. Please use DSCConstants.ATEND. This constant was in the wrong place.
Indicator for the PostScript interpreter that the value is provided later in the document (mostly in the %%Trailer section).


LF

public static final char LF
Line feed used by PostScript

See Also:
Constant Field Values
Constructor Detail

PSGenerator

public PSGenerator(java.io.OutputStream out)
Creates a new instance.

Parameters:
out - the OutputStream to write the generated PostScript code to
Method Detail

getOutputStream

public java.io.OutputStream getOutputStream()
Returns the OutputStream the PSGenerator writes to.

Returns:
the OutputStream

getPSLevel

public int getPSLevel()
Returns the selected PostScript level.

Returns:
the PostScript level

setPSLevel

public void setPSLevel(int level)
Sets the PostScript level that is used to generate the current document.

Parameters:
level - the PostScript level (currently 1, 2 and 3 are known)

resolveURI

public javax.xml.transform.Source resolveURI(java.lang.String uri)
Attempts to resolve the given URI. PSGenerator should be subclasses to provide more sophisticated URI resolution.

Parameters:
uri - URI to access
Returns:
A Source object, or null if the URI cannot be resolved.

newLine

public final void newLine()
                   throws java.io.IOException
Writes a newline character to the OutputStream.

Throws:
java.io.IOException - In case of an I/O problem

formatDouble

public java.lang.String formatDouble(double value)
Formats a double value for PostScript output.

Parameters:
value - value to format
Returns:
the formatted value

formatDouble5

public java.lang.String formatDouble5(double value)
Formats a double value for PostScript output (higher resolution).

Parameters:
value - value to format
Returns:
the formatted value

write

public void write(java.lang.String cmd)
           throws java.io.IOException
Writes a PostScript command to the stream.

Parameters:
cmd - The PostScript code to be written.
Throws:
java.io.IOException - In case of an I/O problem

writeln

public void writeln(java.lang.String cmd)
             throws java.io.IOException
Writes a PostScript command to the stream and ends the line.

Parameters:
cmd - The PostScript code to be written.
Throws:
java.io.IOException - In case of an I/O problem

commentln

public void commentln(java.lang.String comment)
               throws java.io.IOException
Writes a comment to the stream and ends the line. Output of comments can be disabled to reduce the size of the generated file.

Parameters:
comment - comment to write
Throws:
java.io.IOException - In case of an I/O problem

writeByteArr

public void writeByteArr(byte[] cmd)
                  throws java.io.IOException
Writes encoded data to the PostScript stream.

Parameters:
cmd - The encoded PostScript code to be written.
Throws:
java.io.IOException - In case of an I/O problem

flush

public void flush()
           throws java.io.IOException
Flushes the OutputStream.

Throws:
java.io.IOException - In case of an I/O problem

escapeChar

public static final void escapeChar(char c,
                                    java.lang.StringBuffer target)
Escapes a character conforming to the rules established in the PostScript Language Reference (Search for "Literal Text Strings").

Parameters:
c - character to escape
target - target StringBuffer to write the escaped character to

convertStringToDSC

public static final java.lang.String convertStringToDSC(java.lang.String text)
Converts text by applying escaping rules established in the DSC specs.

Parameters:
text - Text to convert
Returns:
String The resulting String

convertRealToDSC

public static final java.lang.String convertRealToDSC(float value)
Converts a value for use in DSC comments.

Parameters:
value - the value to convert
Returns:
String The resulting String

convertStringToDSC

public static final java.lang.String convertStringToDSC(java.lang.String text,
                                                        boolean forceParentheses)
Converts text by applying escaping rules established in the DSC specs.

Parameters:
text - Text to convert
forceParentheses - Force the use of parentheses
Returns:
String The resulting String

writeDSCComment

public void writeDSCComment(java.lang.String name)
                     throws java.io.IOException
Writes a DSC comment to the output stream.

Parameters:
name - Name of the DSC comment
Throws:
java.io.IOException - In case of an I/O problem
See Also:
DSCConstants

writeDSCComment

public void writeDSCComment(java.lang.String name,
                            java.lang.Object param)
                     throws java.io.IOException
Writes a DSC comment to the output stream. The parameter to the DSC comment can be any object. The object is converted to a String as necessary.

Parameters:
name - Name of the DSC comment
param - Single parameter to the DSC comment
Throws:
java.io.IOException - In case of an I/O problem
See Also:
DSCConstants

writeDSCComment

public void writeDSCComment(java.lang.String name,
                            java.lang.Object[] params)
                     throws java.io.IOException
Writes a DSC comment to the output stream. The parameters to the DSC comment can be any object. The objects are converted to Strings as necessary. Please see the source code to find out what parameters are currently supported.

Parameters:
name - Name of the DSC comment
params - Array of parameters to the DSC comment
Throws:
java.io.IOException - In case of an I/O problem
See Also:
DSCConstants

saveGraphicsState

public void saveGraphicsState()
                       throws java.io.IOException
Saves the graphics state of the rendering engine.

Throws:
java.io.IOException - In case of an I/O problem

restoreGraphicsState

public boolean restoreGraphicsState()
                             throws java.io.IOException
Restores the last graphics state of the rendering engine.

Returns:
true if the state was restored, false if there's a stack underflow.
Throws:
java.io.IOException - In case of an I/O problem

getCurrentState

public PSState getCurrentState()
Returns the current graphics state.

Returns:
the current graphics state

concatMatrix

public void concatMatrix(double a,
                         double b,
                         double c,
                         double d,
                         double e,
                         double f)
                  throws java.io.IOException
Concats the transformation matrix.

Parameters:
a - A part
b - B part
c - C part
d - D part
e - E part
f - F part
Throws:
java.io.IOException - In case of an I/O problem

concatMatrix

public void concatMatrix(double[] matrix)
                  throws java.io.IOException
Concats the transformations matrix.

Parameters:
matrix - Matrix to use
Throws:
java.io.IOException - In case of an I/O problem

concatMatrix

public void concatMatrix(java.awt.geom.AffineTransform at)
                  throws java.io.IOException
Concats the transformations matric.

Parameters:
at - the AffineTransform whose matrix to use
Throws:
java.io.IOException - In case of an I/O problem

defineRect

public void defineRect(double x,
                       double y,
                       double w,
                       double h)
                throws java.io.IOException
Adds a rectangle to the current path.

Parameters:
x - upper left corner
y - upper left corner
w - width
h - height
Throws:
java.io.IOException - In case of an I/O problem

useLineCap

public void useLineCap(int linecap)
                throws java.io.IOException
Establishes the specified line cap style.

Parameters:
linecap - the line cap style (0, 1 or 2) as defined by the setlinecap command.
Throws:
java.io.IOException - In case of an I/O problem

useLineWidth

public void useLineWidth(double width)
                  throws java.io.IOException
Establishes the specified line width.

Parameters:
width - the line width as defined by the setlinewidth command.
Throws:
java.io.IOException - In case of an I/O problem

useDash

public void useDash(java.lang.String pattern)
             throws java.io.IOException
Establishes the specified dash pattern.

Parameters:
pattern - the dash pattern as defined by the setdash command.
Throws:
java.io.IOException - In case of an I/O problem

useRGBColor

public void useRGBColor(java.awt.Color col)
                 throws java.io.IOException
Deprecated. use useColor method instead

Establishes the specified color (RGB).

Parameters:
col - the color as defined by the setrgbcolor command.
Throws:
java.io.IOException - In case of an I/O problem

useColor

public void useColor(java.awt.Color col)
              throws java.io.IOException
Establishes the specified color.

Parameters:
col - the color.
Throws:
java.io.IOException - In case of an I/O problem

useFont

public void useFont(java.lang.String name,
                    float size)
             throws java.io.IOException
Establishes the specified font and size.

Parameters:
name - name of the font for the "F" command (see FOP Std Proc Set)
size - size of the font
Throws:
java.io.IOException - In case of an I/O problem

getResourceTracker

public ResourceTracker getResourceTracker()
Resturns the ResourceTracker instance associated with this PSGenerator.

Returns:
the ResourceTracker instance or null if none is assigned

setResourceTracker

public void setResourceTracker(ResourceTracker resTracker)
Sets the ResourceTracker instance to be associated with this PSGenerator.

Parameters:
resTracker - the ResourceTracker instance

notifyStartNewPage

public void notifyStartNewPage()
Deprecated. Use the notifyStartNewPage() on ResourceTracker instead.

Notifies the generator that a new page has been started and that the page resource set can be cleared.


notifyResourceUsage

public void notifyResourceUsage(PSResource res,
                                boolean needed)
Deprecated. Use the notifyResourceUsageOnPage() on ResourceTracker instead

Notifies the generator about the usage of a resource on the current page.

Parameters:
res - the resource being used
needed - true if this is a needed resource, false for a supplied resource

writeResources

public void writeResources(boolean pageLevel)
                    throws java.io.IOException
Deprecated. Use the writeResources() on ResourceTracker instead.

Writes a DSC comment for the accumulated used resources, either at page level or at document level.

Parameters:
pageLevel - true if the DSC comment for the page level should be generated, false for the document level (in the trailer)
Throws:
java.io.IOException - In case of an I/O problem

isResourceSupplied

public boolean isResourceSupplied(PSResource res)
Deprecated. Use the isResourceSupplied() on ResourceTracker instead.

Indicates whether a particular resource is supplied, rather than needed.

Parameters:
res - the resource
Returns:
true if the resource is registered as being supplied.

xmlgraphics-commons 1.2

Copyright 1999-2007 The Apache Software Foundation. All Rights Reserved.