FreeHEP API
Version v1.1

org.freehep.graphicsio.pdf
Class PDFGraphics2D

java.lang.Object
  |
  +--java.awt.Graphics
        |
        +--java.awt.Graphics2D
              |
              +--org.freehep.graphics2d.VectorGraphics
                    |
                    +--org.freehep.graphics2d.AbstractVectorGraphics
                          |
                          +--org.freehep.graphicsio.VectorGraphicsIO
                                |
                                +--org.freehep.graphicsio.AbstractVectorGraphicsIO
                                      |
                                      +--org.freehep.graphicsio.pdf.PDFGraphics2D
All Implemented Interfaces:
FontUtilities.ShowString, MultiPageDocument, VectorGraphicsConstants

public class PDFGraphics2D
extends AbstractVectorGraphicsIO
implements MultiPageDocument, FontUtilities.ShowString

Implementation of VectorGraphics that writes the output to a PDF file. Users of this class have to generate a PDFWriter and create an instance by invoking the factory method or the constructor. Document specific settings like page size can then be made by the appropriate setter methods. Before starting to draw, startExport() must be called. When drawing is finished, call endExport().

Version:
$Id: PDFGraphics2D.java,v 1.7 2002/09/04 21:59:56 duns Exp $
Author:
Simon Fischer, Mark Donszelmann

Field Summary
static String version
           
 
Fields inherited from interface org.freehep.graphics2d.VectorGraphicsConstants
NUMBER_OF_HORIZ_ALIGNMENTS, NUMBER_OF_SYMBOLS, NUMBER_OF_VERTICAL_ALIGNMENTS, SYMBOL_BOX, SYMBOL_CIRCLE, SYMBOL_CROSS, SYMBOL_DIAMOND, SYMBOL_DN_TRIANGLE, SYMBOL_HLINE, SYMBOL_PLUS, SYMBOL_STAR, SYMBOL_UP_TRIANGLE, SYMBOL_VLINE, TEXT_BASELINE, TEXT_BOTTOM, TEXT_CENTER, TEXT_LEFT, TEXT_RIGHT, TEXT_TOP
 
Constructor Summary
  PDFGraphics2D(File file, Component component)
           
  PDFGraphics2D(File file, Dimension size)
           
  PDFGraphics2D(OutputStream ros, Component component)
           
  PDFGraphics2D(OutputStream ros, Dimension size)
           
protected PDFGraphics2D(PDFGraphics2D graphics, boolean doRestoreOnDispose)
          Cloneconstructor
 
Method Summary
 void closePage()
          End the current page.
 void closeStream()
          Called to close the stream you are writing to.
 void copyArea(int x, int y, int width, int height, int dx, int dy)
           
 Graphics create()
           
 Graphics create(double x, double y, double width, double height)
           
 void draw(Shape s)
           
 void drawGlyphVector(GlyphVector g, float x, float y)
           
 void drawRenderedImage(RenderedImage img, AffineTransform xform)
          Draws a rendered image using a transform.
 void drawString(AttributedCharacterIterator iterator, float x, float y)
           
 void drawString(String str, double x, double y)
          Draws a string.
 void drawString(String str, double x, double y, int horizontal, int vertical, boolean framed, Color frameColor, double frameWidth, boolean banner, Color bannerColor)
          Draws a string with a lot of parameters.
 void drawString(TagString str, double x, double y, int horizontal, int vertical, boolean framed, Color frameColor, double frameWidth, boolean banner, Color bannerColor)
          Draws a TagString with a lot of parameters.
 void fill(Shape s)
           
 void fillAndDraw(Shape s, Color fillColor)
           
 GraphicsConfiguration getDeviceConfiguration()
           
 boolean hit(Rectangle rect, Shape s, boolean onStroke)
           
 void openPage(Dimension size, String title, Image thumb)
          Start the next page using the given size.
 void setClip(Shape shape)
          Clips shape.
static void setClipEnabled(boolean enabled)
          Set the clipping enabled flag.
 void setEmbedFonts(int embed)
           
 void setFitToPage(boolean ftp)
           
 void setFooter(Font font, TagString left, TagString center, TagString right, int underlineThickness)
          Set the footline of all pages.
 void setHeader(Font font, TagString left, TagString center, TagString right, int underlineThickness)
          Set the headline of all pages.
 void setInfo(String author, String title, String subject, String keywords)
           
 void setMultiPage(boolean isMultiPage)
           
 void setPageFormat(Dimension pageSize, Insets margins, boolean isPortrait)
           
 void setPaintMode()
           
 void setXORMode(Color c1)
           
 void showString(Font font, String str)
           
 String toString()
           
protected  void writeCap(int cap)
          Writes out the cap of the stroke.
protected  void writeClip(Rectangle2D r2d)
          Write out Rectangle2D clip.
protected  void writeClip(Shape s)
          Write out Shape clip.
 void writeComment(String comment)
          Called to Write out a comment.
protected  void writeDash(double[] dash, double phase)
          Writes out the dash of the stroke.
protected  void writeGraphicsRestore()
          Writes out the restore of a graphics context.
protected  void writeGraphicsSave()
          Writes out the save of a graphics context for a later restore.
 void writeHeader()
          Writes the catalog, docinfo, preferences, and (as we use only single page output the page tree.
protected  boolean writeImage(Image image, int x, int y, int width, int height, boolean mask, ImageObserver observer)
          Writes out (transparent) image.
protected  void writeJoin(int join)
          Writes out the join of the stroke.
protected  void writeMiterLimit(float limit)
          Writes out the miter limit of the stroke.
protected  void writePaint(Color c)
          Writes out paint as the given color.
protected  void writePaint(GradientPaint c)
          Writes out paint as the given gradient.
protected  void writePaint(Paint paint)
          Writes out paint.
protected  void writePaint(TexturePaint c)
          Writes out paint as the given texture.
 void writeTrailer()
          Called to write the trailing part of the output.
protected  void writeTransform(AffineTransform t)
          Write the given transformation matrix to the file.
protected  void writeWidth(float width)
          Writes out the width of the stroke.
 
Methods inherited from class org.freehep.graphicsio.AbstractVectorGraphicsIO
addRenderingHints, clearRect, clip, clipRect, clipRect, createShape, dispose, drawImage, drawImage, endExport, fixedPrecision, getClip, getClipBounds, getClipBounds, getComposite, getFont, getFontMetrics, getFontRenderContext, getRenderingHint, getRenderingHints, getSize, getStroke, getTransform, handleException, printComment, resetClip, rotate, scale, setClip, setClip, setColor, setComposite, setFont, setPaint, setRenderingHint, setRenderingHints, setStroke, setTransform, shear, startExport, transform, translate, writeClip, writeError, writeGraphicsState, writeSetClip, writeStroke, writeWarning, writeWarning
 
Methods inherited from class org.freehep.graphicsio.VectorGraphicsIO
copyResourceTo, copyResourceTo
 
Methods inherited from class org.freehep.graphics2d.AbstractVectorGraphics
clearRect, createShape, drawArc, drawArc, drawImage, drawImage, drawImage, drawImage, drawImage, drawImage, drawLine, drawLine, drawOval, drawOval, drawPolygon, drawPolygon, drawPolyline, drawPolyline, drawRect, drawRect, drawRenderableImage, drawRoundRect, drawRoundRect, drawString, drawString, drawString, drawString, drawString, drawString, drawSymbol, drawSymbol, fillArc, fillArc, fillOval, fillOval, fillPolygon, fillPolygon, fillRect, fillRect, fillRoundRect, fillRoundRect, fillSymbol, fillSymbol, getBackground, getColor, getColorMode, getCreator, getPaint, getPrintColor, isDeviceIndependent, rotate, setBackground, setColorMode, setCreator, setDeviceIndependent, setLineWidth, setLineWidth, translate
 
Methods inherited from class org.freehep.graphics2d.VectorGraphics
create, create, getSymbol, getTextAlignment, getXalignment, getYalignment
 
Methods inherited from class java.awt.Graphics2D
draw3DRect, fill3DRect
 
Methods inherited from class java.awt.Graphics
drawBytes, drawChars, drawPolygon, fillPolygon, finalize, getClipRect, getFontMetrics, hitClip
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

version

public static final String version
See Also:
Constant Field Values
Constructor Detail

PDFGraphics2D

public PDFGraphics2D(File file,
                     Dimension size)
              throws FileNotFoundException

PDFGraphics2D

public PDFGraphics2D(File file,
                     Component component)
              throws FileNotFoundException

PDFGraphics2D

public PDFGraphics2D(OutputStream ros,
                     Dimension size)

PDFGraphics2D

public PDFGraphics2D(OutputStream ros,
                     Component component)

PDFGraphics2D

protected PDFGraphics2D(PDFGraphics2D graphics,
                        boolean doRestoreOnDispose)
Cloneconstructor

Method Detail

setMultiPage

public void setMultiPage(boolean isMultiPage)
Specified by:
setMultiPage in interface MultiPageDocument

setPageFormat

public void setPageFormat(Dimension pageSize,
                          Insets margins,
                          boolean isPortrait)

setFitToPage

public void setFitToPage(boolean ftp)

setClipEnabled

public static void setClipEnabled(boolean enabled)
Set the clipping enabled flag. This will affect all output operations after this call completes. In some circumstances the clipping region is set incorrectly (not yet understood; AWT seems to not correctly dispose of graphic contexts). A workaround is to simply switch it off.


setEmbedFonts

public void setEmbedFonts(int embed)

setInfo

public void setInfo(String author,
                    String title,
                    String subject,
                    String keywords)

writeHeader

public void writeHeader()
                 throws IOException
Writes the catalog, docinfo, preferences, and (as we use only single page output the page tree.

Specified by:
writeHeader in class AbstractVectorGraphicsIO
IOException

writeTrailer

public void writeTrailer()
                  throws IOException
Description copied from class: AbstractVectorGraphicsIO
Called to write the trailing part of the output.

Specified by:
writeTrailer in class AbstractVectorGraphicsIO
IOException

closeStream

public void closeStream()
                 throws IOException
Description copied from class: AbstractVectorGraphicsIO
Called to close the stream you are writing to.

Specified by:
closeStream in class AbstractVectorGraphicsIO
IOException

openPage

public void openPage(Dimension size,
                     String title,
                     Image thumb)
              throws IOException
Description copied from interface: MultiPageDocument
Start the next page using the given size. Both title and thumb may be null.

Specified by:
openPage in interface MultiPageDocument
IOException

closePage

public void closePage()
               throws IOException
Description copied from interface: MultiPageDocument
End the current page.

Specified by:
closePage in interface MultiPageDocument
IOException

setHeader

public void setHeader(Font font,
                      TagString left,
                      TagString center,
                      TagString right,
                      int underlineThickness)
Description copied from interface: MultiPageDocument
Set the headline of all pages.

Specified by:
setHeader in interface MultiPageDocument

setFooter

public void setFooter(Font font,
                      TagString left,
                      TagString center,
                      TagString right,
                      int underlineThickness)
Description copied from interface: MultiPageDocument
Set the footline of all pages.

Specified by:
setFooter in interface MultiPageDocument

create

public Graphics create()
Specified by:
create in class VectorGraphics

create

public Graphics create(double x,
                       double y,
                       double width,
                       double height)
Specified by:
create in class VectorGraphics

writeGraphicsSave

protected void writeGraphicsSave()
                          throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out the save of a graphics context for a later restore. Some implementations keep track of this by hand if the output format does not support it.

Specified by:
writeGraphicsSave in class AbstractVectorGraphicsIO
IOException

writeGraphicsRestore

protected void writeGraphicsRestore()
                             throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out the restore of a graphics context. Some implementations keep track of this by hand if the output format does not support it.

Specified by:
writeGraphicsRestore in class AbstractVectorGraphicsIO
IOException

draw

public void draw(Shape s)
Specified by:
draw in class VectorGraphics

fill

public void fill(Shape s)
Specified by:
fill in class VectorGraphics

fillAndDraw

public void fillAndDraw(Shape s,
                        Color fillColor)
Specified by:
fillAndDraw in class VectorGraphics

copyArea

public void copyArea(int x,
                     int y,
                     int width,
                     int height,
                     int dx,
                     int dy)
Specified by:
copyArea in class VectorGraphics

drawRenderedImage

public void drawRenderedImage(RenderedImage img,
                              AffineTransform xform)
Description copied from class: AbstractVectorGraphicsIO
Draws a rendered image using a transform.

Specified by:
drawRenderedImage in class AbstractVectorGraphicsIO
Parameters:
img - to be drawn
xform - transform to be used on the image

writeImage

protected boolean writeImage(Image image,
                             int x,
                             int y,
                             int width,
                             int height,
                             boolean mask,
                             ImageObserver observer)
                      throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out (transparent) image.

Specified by:
writeImage in class AbstractVectorGraphicsIO
Parameters:
image - image to be written
mask - true if image masks background
observer - for updates if image still incomplete
Returns:
true if successful
IOException

drawString

public void drawString(String str,
                       double x,
                       double y)
Description copied from class: VectorGraphics
Draws a string.

Specified by:
drawString in class VectorGraphics

drawString

public void drawString(String str,
                       double x,
                       double y,
                       int horizontal,
                       int vertical,
                       boolean framed,
                       Color frameColor,
                       double frameWidth,
                       boolean banner,
                       Color bannerColor)
Description copied from class: VectorGraphics
Draws a string with a lot of parameters.

Specified by:
drawString in class VectorGraphics
Parameters:
framed - true if text is surrounded by a frame
frameColor - color of the frame
frameWidth - witdh of the frame
banner - true if the frame is filled by a banner
bannerColor - color of the banner

drawString

public void drawString(TagString str,
                       double x,
                       double y,
                       int horizontal,
                       int vertical,
                       boolean framed,
                       Color frameColor,
                       double frameWidth,
                       boolean banner,
                       Color bannerColor)
Description copied from class: VectorGraphics
Draws a TagString with a lot of parameters.

Specified by:
drawString in class VectorGraphics
Parameters:
framed - true if text is surrounded by a frame
frameColor - color of the frame
frameWidth - witdh of the frame
banner - true if the frame is filled by a banner
bannerColor - color of the banner

drawString

public void drawString(AttributedCharacterIterator iterator,
                       float x,
                       float y)
Specified by:
drawString in class VectorGraphics

drawGlyphVector

public void drawGlyphVector(GlyphVector g,
                            float x,
                            float y)
Specified by:
drawGlyphVector in class VectorGraphics

writeTransform

protected void writeTransform(AffineTransform t)
                       throws IOException
Write the given transformation matrix to the file.

Specified by:
writeTransform in class AbstractVectorGraphicsIO
Parameters:
t - to be written
IOException

setClip

public void setClip(Shape shape)
Clips shape. PS only allows to intersect the currentClip so this calls clip(Shape).

Overrides:
setClip in class AbstractVectorGraphicsIO
Parameters:
shape - used for clipping

writeClip

protected void writeClip(Rectangle2D r2d)
                  throws IOException
Description copied from class: AbstractVectorGraphicsIO
Write out Rectangle2D clip.

Specified by:
writeClip in class AbstractVectorGraphicsIO
Parameters:
r2d - to be used for clipping
IOException

writeClip

protected void writeClip(Shape s)
                  throws IOException
Description copied from class: AbstractVectorGraphicsIO
Write out Shape clip.

Specified by:
writeClip in class AbstractVectorGraphicsIO
Parameters:
s - to be used for clipping
IOException

writeWidth

protected void writeWidth(float width)
                   throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out the width of the stroke.

Overrides:
writeWidth in class AbstractVectorGraphicsIO
Parameters:
width - of the stroke
IOException

writeCap

protected void writeCap(int cap)
                 throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out the cap of the stroke.

Overrides:
writeCap in class AbstractVectorGraphicsIO
Parameters:
cap - of the stroke
IOException

writeJoin

protected void writeJoin(int join)
                  throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out the join of the stroke.

Overrides:
writeJoin in class AbstractVectorGraphicsIO
Parameters:
join - of the stroke
IOException

writeMiterLimit

protected void writeMiterLimit(float limit)
                        throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out the miter limit of the stroke.

Overrides:
writeMiterLimit in class AbstractVectorGraphicsIO
IOException

writeDash

protected void writeDash(double[] dash,
                         double phase)
                  throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out the dash of the stroke.

Overrides:
writeDash in class AbstractVectorGraphicsIO
Parameters:
dash - dash pattern, empty array is solid line
phase - of the dash pattern
IOException

setPaintMode

public void setPaintMode()
Specified by:
setPaintMode in class VectorGraphics

setXORMode

public void setXORMode(Color c1)
Specified by:
setXORMode in class VectorGraphics

writePaint

protected void writePaint(Color c)
                   throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out paint as the given color.

Specified by:
writePaint in class AbstractVectorGraphicsIO
Parameters:
c - to be written
IOException

writePaint

protected void writePaint(GradientPaint c)
                   throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out paint as the given gradient.

Specified by:
writePaint in class AbstractVectorGraphicsIO
Parameters:
c - to be written
IOException

writePaint

protected void writePaint(TexturePaint c)
                   throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out paint as the given texture.

Specified by:
writePaint in class AbstractVectorGraphicsIO
Parameters:
c - to be written
IOException

writePaint

protected void writePaint(Paint paint)
                   throws IOException
Description copied from class: AbstractVectorGraphicsIO
Writes out paint.

Specified by:
writePaint in class AbstractVectorGraphicsIO
Parameters:
paint - to be written
IOException

getDeviceConfiguration

public GraphicsConfiguration getDeviceConfiguration()
Specified by:
getDeviceConfiguration in class VectorGraphics

hit

public boolean hit(Rectangle rect,
                   Shape s,
                   boolean onStroke)
Specified by:
hit in class VectorGraphics

writeComment

public void writeComment(String comment)
                  throws IOException
Description copied from class: AbstractVectorGraphicsIO
Called to Write out a comment.

Specified by:
writeComment in class AbstractVectorGraphicsIO
Parameters:
comment - to be written
IOException

toString

public String toString()
Specified by:
toString in class VectorGraphics

showString

public void showString(Font font,
                       String str)
                throws IOException
Specified by:
showString in interface FontUtilities.ShowString
IOException

FreeHEP API
Version v1.1

Copyright © 2000-2002 FreeHEP, All Rights Reserved.