fop 0.93

org.apache.fop.render.java2d
Class Java2DRenderer

java.lang.Object
  |
  +--org.apache.fop.render.AbstractRenderer
        |
        +--org.apache.fop.render.PrintRenderer
              |
              +--org.apache.fop.render.AbstractPathOrientedRenderer
                    |
                    +--org.apache.fop.render.java2d.Java2DRenderer
All Implemented Interfaces:
org.apache.avalon.framework.configuration.Configurable, Constants, java.awt.print.Printable, Renderer
Direct Known Subclasses:
AWTRenderer, PNGRenderer, PNGRenderer_onthefly, PrintRenderer, TIFFRenderer

public abstract class Java2DRenderer
extends AbstractPathOrientedRenderer
implements java.awt.print.Printable

The Java2DRenderer class provides the abstract technical foundation for all rendering with the Java2D API. Renderers like AWTRenderer subclass it and provide the concrete output paths.

A lot of the logic is performed by AbstractRenderer. The class-variables currentIPPosition and currentBPPosition hold the position of the currently rendered area.

Java2DGraphicsState state holds the Graphics2D, which is used along the whole rendering. state also acts as a stack (state.push() and state.pop()).

The rendering process is basically always the same:

void renderXXXXX(Area area) { //calculate the currentPosition state.updateFont(name, size, null); state.updateColor(ct, false, null); state.getGraph.draw(new Shape(args)); }


Field Summary
protected  boolean antialiasing
          true if antialiasing is set
static java.lang.String JAVA2D_TRANSPARENT_PAGE_BACKGROUND
          Rendering Options key for the controlling the transparent page background option.
protected  int pageHeight
          The page height in pixels
protected  java.util.List pageViewportList
          List of Viewports
protected  int pageWidth
          The page width in pixels
protected  boolean qualityRendering
          true if qualityRendering is set
protected  double scaleFactor
          The scale factor for the image size, values: ]0 ; 1]
protected  Java2DGraphicsState state
          The current state, holds a Graphics2D and its context
protected  boolean transparentPageBackground
          false: paints a non-transparent white background, true: for a transparent background
 
Fields inherited from class org.apache.fop.render.PrintRenderer
fontInfo, fontList
 
Fields inherited from class org.apache.fop.render.AbstractRenderer
containingBPPosition, containingIPPosition, currentBPPosition, currentIPPosition, currentPageViewport, log, userAgent
 
Fields inherited from interface java.awt.print.Printable
NO_SUCH_PAGE, PAGE_EXISTS
 
Fields inherited from interface org.apache.fop.render.Renderer
ROLE
 
Fields inherited from interface org.apache.fop.fo.Constants
COMPOUND_COUNT, COMPOUND_MASK, COMPOUND_SHIFT, CP_BLOCK_PROGRESSION_DIRECTION, CP_CONDITIONALITY, CP_INLINE_PROGRESSION_DIRECTION, CP_LENGTH, CP_MAXIMUM, CP_MINIMUM, CP_OPTIMUM, CP_PRECEDENCE, CP_WITHIN_COLUMN, CP_WITHIN_LINE, CP_WITHIN_PAGE, EN_100, EN_200, EN_300, EN_400, EN_500, EN_600, EN_700, EN_800, EN_900, EN_ABSOLUTE, EN_ABSOLUTE_COLORMETRIC, EN_AFTER, EN_AFTER_EDGE, EN_ALL, EN_ALPHABETIC, EN_ALWAYS, EN_ANY, EN_AUTO, EN_AUTO_EVEN, EN_AUTO_ODD, EN_AVOID, EN_BACKSLANT, EN_BASELINE, EN_BEFORE, EN_BEFORE_EDGE, EN_BIDI_OVERRIDE, EN_BLANK, EN_BLINK, EN_BLOCK, EN_BOLDER, EN_BOTH, EN_BOTTOM, EN_BOUNDED_IN_ONE_DIMENSION, EN_CAPITALIZE, EN_CAPTION, EN_CENTER, EN_CENTRAL, EN_CHARACTER_BY_CHARACTER, EN_COLLAPSE, EN_COLLAPSE_WITH_PRECEDENCE, EN_COLUMN, EN_CONDENSED, EN_CONSIDER_SHIFTS, EN_DASHED, EN_DISCARD, EN_DISREGARD_SHIFTS, EN_DOCUMENT, EN_DOTS, EN_DOTTED, EN_DOUBLE, EN_EMBED, EN_END, EN_END_ON_EVEN, EN_END_ON_ODD, EN_ERROR_IF_OVERFLOW, EN_EVEN, EN_EVEN_PAGE, EN_EXPANDED, EN_EXTRA_CONDENSED, EN_EXTRA_EXPANDED, EN_FALSE, EN_FIC, EN_FIRST, EN_FIXED, EN_FONT_HEIGHT, EN_FORCE, EN_FSWP, EN_GROOVE, EN_HANGING, EN_HIDDEN, EN_HIDE, EN_ICON, EN_IDEOGRAPHIC, EN_IGNORE, EN_IGNORE_IF_AFTER_LINEFEED, EN_IGNORE_IF_BEFORE_LINEFEED, EN_IGNORE_IF_SURROUNDING_LINEFEED, EN_INDEFINITE, EN_INDENT, EN_INHERIT, EN_INSET, EN_INSIDE, EN_INTEGER_PIXELS, EN_ITALIC, EN_JUSTIFY, EN_LARGER, EN_LAST, EN_LEFT, EN_LEWP, EN_LIGHTER, EN_LINE, EN_LINE_HEIGHT, EN_LINE_THROUGH, EN_LOWERCASE, EN_LR_TB, EN_LSWP, EN_LTR, EN_MATHEMATICAL, EN_MAX_HEIGHT, EN_MENU, EN_MESSAGE_BOX, EN_MIDDLE, EN_NARROWER, EN_NO_BLINK, EN_NO_CHANGE, EN_NO_FORCE, EN_NO_LIMIT, EN_NO_LINE_THROUGH, EN_NO_OVERLINE, EN_NO_UNDERLINE, EN_NO_WRAP, EN_NON_UNIFORM, EN_NONE, EN_NOREPEAT, EN_NORMAL, EN_NOT_BLANK, EN_OBLIQUE, EN_ODD, EN_ODD_PAGE, EN_OUTSET, EN_OUTSIDE, EN_OVERLINE, EN_PAGE, EN_PAGE_SEQUENCE, EN_PAGINATE, EN_PERCEPTUAL, EN_PRE, EN_PRESERVE, EN_REFERENCE_AREA, EN_RELATIVE, EN_RELATIVE_COLOMETRIC, EN_REPEAT, EN_REPEATX, EN_REPEATY, EN_RESAMPLE_ANY_METHOD, EN_RESET_SIZE, EN_REST, EN_RETAIN, EN_RIDGE, EN_RIGHT, EN_RL_TB, EN_RTL, EN_RULE, EN_SATURATION, EN_SCALE_TO_FIT, EN_SCROLL, EN_SEMI_CONDENSED, EN_SEMI_EXPANDED, EN_SEPARATE, EN_SHOW, EN_SMALL_CAPS, EN_SMALL_CAPTION, EN_SMALLER, EN_SOLID, EN_SPACE, EN_START, EN_STATIC, EN_STATUS_BAR, EN_SUB, EN_SUPER, EN_SUPPRESS, EN_TB_RL, EN_TEXT_AFTER_EDGE, EN_TEXT_BEFORE_EDGE, EN_TEXT_BOTTOM, EN_TEXT_TOP, EN_TOP, EN_TRADITIONAL, EN_TREAT_AS_SPACE, EN_TREAT_AS_ZERO_WIDTH_SPACE, EN_TRUE, EN_ULTRA_CONDENSED, EN_ULTRA_EXPANDED, EN_UNBOUNDED, EN_UNDERLINE, EN_UNIFORM, EN_UPPERCASE, EN_USE_FONT_METRICS, EN_USE_SCRIPT, EN_USECONTENT, EN_VISIBLE, EN_WIDER, EN_WRAP, EN_X_DISTRIBUTE, EN_X_FILL, ENUM_COUNT, FO_BASIC_LINK, FO_BIDI_OVERRIDE, FO_BLOCK, FO_BLOCK_CONTAINER, FO_BOOKMARK, FO_BOOKMARK_TITLE, FO_BOOKMARK_TREE, FO_CHARACTER, FO_COLOR_PROFILE, FO_CONDITIONAL_PAGE_MASTER_REFERENCE, FO_DECLARATIONS, FO_EXTERNAL_GRAPHIC, FO_FLOAT, FO_FLOW, FO_FOOTNOTE, FO_FOOTNOTE_BODY, FO_INITIAL_PROPERTY_SET, FO_INLINE, FO_INLINE_CONTAINER, FO_INSTREAM_FOREIGN_OBJECT, FO_LAYOUT_MASTER_SET, FO_LEADER, FO_LIST_BLOCK, FO_LIST_ITEM, FO_LIST_ITEM_BODY, FO_LIST_ITEM_LABEL, FO_MARKER, FO_MULTI_CASE, FO_MULTI_PROPERTIES, FO_MULTI_PROPERTY_SET, FO_MULTI_SWITCH, FO_MULTI_TOGGLE, FO_PAGE_NUMBER, FO_PAGE_NUMBER_CITATION, FO_PAGE_NUMBER_CITATION_LAST, FO_PAGE_SEQUENCE, FO_PAGE_SEQUENCE_MASTER, FO_PAGE_SEQUENCE_WRAPPER, FO_REGION_AFTER, FO_REGION_BEFORE, FO_REGION_BODY, FO_REGION_END, FO_REGION_START, FO_REPEATABLE_PAGE_MASTER_ALTERNATIVES, FO_REPEATABLE_PAGE_MASTER_REFERENCE, FO_RETRIEVE_MARKER, FO_ROOT, FO_SIMPLE_PAGE_MASTER, FO_SINGLE_PAGE_MASTER_REFERENCE, FO_STATIC_CONTENT, FO_TABLE, FO_TABLE_AND_CAPTION, FO_TABLE_BODY, FO_TABLE_CAPTION, FO_TABLE_CELL, FO_TABLE_COLUMN, FO_TABLE_FOOTER, FO_TABLE_HEADER, FO_TABLE_ROW, FO_TITLE, FO_UNKNOWN_NODE, FO_WRAPPER, FRM_OBJ_COUNT, NOT_SET, PR_ABSOLUTE_POSITION, PR_ACTIVE_STATE, PR_ALIGNMENT_ADJUST, PR_ALIGNMENT_BASELINE, PR_AUTO_RESTORE, PR_AZIMUTH, PR_BACKGROUND, PR_BACKGROUND_ATTACHMENT, PR_BACKGROUND_COLOR, PR_BACKGROUND_IMAGE, PR_BACKGROUND_POSITION, PR_BACKGROUND_POSITION_HORIZONTAL, PR_BACKGROUND_POSITION_VERTICAL, PR_BACKGROUND_REPEAT, PR_BASELINE_SHIFT, PR_BLANK_OR_NOT_BLANK, PR_BLOCK_PROGRESSION_DIMENSION, PR_BORDER, PR_BORDER_AFTER_COLOR, PR_BORDER_AFTER_PRECEDENCE, PR_BORDER_AFTER_STYLE, PR_BORDER_AFTER_WIDTH, PR_BORDER_BEFORE_COLOR, PR_BORDER_BEFORE_PRECEDENCE, PR_BORDER_BEFORE_STYLE, PR_BORDER_BEFORE_WIDTH, PR_BORDER_BOTTOM, PR_BORDER_BOTTOM_COLOR, PR_BORDER_BOTTOM_STYLE, PR_BORDER_BOTTOM_WIDTH, PR_BORDER_COLLAPSE, PR_BORDER_COLOR, PR_BORDER_END_COLOR, PR_BORDER_END_PRECEDENCE, PR_BORDER_END_STYLE, PR_BORDER_END_WIDTH, PR_BORDER_LEFT, PR_BORDER_LEFT_COLOR, PR_BORDER_LEFT_STYLE, PR_BORDER_LEFT_WIDTH, PR_BORDER_RIGHT, PR_BORDER_RIGHT_COLOR, PR_BORDER_RIGHT_STYLE, PR_BORDER_RIGHT_WIDTH, PR_BORDER_SEPARATION, PR_BORDER_SPACING, PR_BORDER_START_COLOR, PR_BORDER_START_PRECEDENCE, PR_BORDER_START_STYLE, PR_BORDER_START_WIDTH, PR_BORDER_STYLE, PR_BORDER_TOP, PR_BORDER_TOP_COLOR, PR_BORDER_TOP_STYLE, PR_BORDER_TOP_WIDTH, PR_BORDER_WIDTH, PR_BOTTOM, PR_BREAK_AFTER, PR_BREAK_BEFORE, PR_CAPTION_SIDE, PR_CASE_NAME, PR_CASE_TITLE, PR_CHARACTER, PR_CLEAR, PR_CLIP, PR_COLOR, PR_COLOR_PROFILE_NAME, PR_COLUMN_COUNT, PR_COLUMN_GAP, PR_COLUMN_NUMBER, PR_COLUMN_WIDTH, PR_CONTENT_HEIGHT, PR_CONTENT_TYPE, PR_CONTENT_WIDTH, PR_COUNTRY, PR_CUE, PR_CUE_AFTER, PR_CUE_BEFORE, PR_DESTINATION_PLACEMENT_OFFSET, PR_DIRECTION, PR_DISPLAY_ALIGN, PR_DOMINANT_BASELINE, PR_ELEVATION, PR_EMPTY_CELLS, PR_END_INDENT, PR_ENDS_ROW, PR_EXTENT, PR_EXTERNAL_DESTINATION, PR_FLOAT, PR_FLOW_NAME, PR_FONT, PR_FONT_FAMILY, PR_FONT_SELECTION_STRATEGY, PR_FONT_SIZE, PR_FONT_SIZE_ADJUST, PR_FONT_STRETCH, PR_FONT_STYLE, PR_FONT_VARIANT, PR_FONT_WEIGHT, PR_FORCE_PAGE_COUNT, PR_FORMAT, PR_GLYPH_ORIENTATION_HORIZONTAL, PR_GLYPH_ORIENTATION_VERTICAL, PR_GROUPING_SEPARATOR, PR_GROUPING_SIZE, PR_HEIGHT, PR_HYPHENATE, PR_HYPHENATION_CHARACTER, PR_HYPHENATION_KEEP, PR_HYPHENATION_LADDER_COUNT, PR_HYPHENATION_PUSH_CHARACTER_COUNT, PR_HYPHENATION_REMAIN_CHARACTER_COUNT, PR_ID, PR_INDEX_CLASS, PR_INDEX_KEY, PR_INDICATE_DESTINATION, PR_INITIAL_PAGE_NUMBER, PR_INLINE_PROGRESSION_DIMENSION, PR_INTERNAL_DESTINATION, PR_INTRUSION_DISPLACE, PR_KEEP_TOGETHER, PR_KEEP_WITH_NEXT, PR_KEEP_WITH_PREVIOUS, PR_LANGUAGE, PR_LAST_LINE_END_INDENT, PR_LEADER_ALIGNMENT, PR_LEADER_LENGTH, PR_LEADER_PATTERN, PR_LEADER_PATTERN_WIDTH, PR_LEFT, PR_LETTER_SPACING, PR_LETTER_VALUE, PR_LINE_HEIGHT, PR_LINE_HEIGHT_SHIFT_ADJUSTMENT, PR_LINE_STACKING_STRATEGY, PR_LINEFEED_TREATMENT, PR_MARGIN, PR_MARGIN_BOTTOM, PR_MARGIN_LEFT, PR_MARGIN_RIGHT, PR_MARGIN_TOP, PR_MARKER_CLASS_NAME, PR_MASTER_NAME, PR_MASTER_REFERENCE, PR_MAX_HEIGHT, PR_MAX_WIDTH, PR_MAXIMUM_REPEATS, PR_MEDIA_USAGE, PR_MIN_HEIGHT, PR_MIN_WIDTH, PR_NUMBER_COLUMNS_REPEATED, PR_NUMBER_COLUMNS_SPANNED, PR_NUMBER_ROWS_SPANNED, PR_ODD_OR_EVEN, PR_ORPHANS, PR_OVERFLOW, PR_PADDING, PR_PADDING_AFTER, PR_PADDING_BEFORE, PR_PADDING_BOTTOM, PR_PADDING_END, PR_PADDING_LEFT, PR_PADDING_RIGHT, PR_PADDING_START, PR_PADDING_TOP, PR_PAGE_BREAK_AFTER, PR_PAGE_BREAK_BEFORE, PR_PAGE_BREAK_INSIDE, PR_PAGE_HEIGHT, PR_PAGE_POSITION, PR_PAGE_WIDTH, PR_PAUSE, PR_PAUSE_AFTER, PR_PAUSE_BEFORE, PR_PITCH, PR_PITCH_RANGE, PR_PLAY_DURING, PR_POSITION, PR_PRECEDENCE, PR_PROVISIONAL_DISTANCE_BETWEEN_STARTS, PR_PROVISIONAL_LABEL_SEPARATION, PR_REF_ID, PR_REFERENCE_ORIENTATION, PR_REGION_NAME, PR_RELATIVE_ALIGN, PR_RELATIVE_POSITION, PR_RENDERING_INTENT, PR_RETRIEVE_BOUNDARY, PR_RETRIEVE_CLASS_NAME, PR_RETRIEVE_POSITION, PR_RICHNESS, PR_RIGHT, PR_ROLE, PR_RULE_STYLE, PR_RULE_THICKNESS, PR_SCALING, PR_SCALING_METHOD, PR_SCORE_SPACES, PR_SCRIPT, PR_SHOW_DESTINATION, PR_SIZE, PR_SOURCE_DOCUMENT, PR_SPACE_AFTER, PR_SPACE_BEFORE, PR_SPACE_END, PR_SPACE_START, PR_SPAN, PR_SPEAK, PR_SPEAK_HEADER, PR_SPEAK_NUMERAL, PR_SPEAK_PUNCTUATION, PR_SPEECH_RATE, PR_SRC, PR_START_INDENT, PR_STARTING_STATE, PR_STARTS_ROW, PR_STRESS, PR_SUPPRESS_AT_LINE_BREAK, PR_SWITCH_TO, PR_TABLE_LAYOUT, PR_TABLE_OMIT_FOOTER_AT_BREAK, PR_TABLE_OMIT_HEADER_AT_BREAK, PR_TARGET_PRESENTATION_CONTEXT, PR_TARGET_PROCESSING_CONTEXT, PR_TARGET_STYLESHEET, PR_TEXT_ALIGN, PR_TEXT_ALIGN_LAST, PR_TEXT_ALTITUDE, PR_TEXT_DECORATION, PR_TEXT_DEPTH, PR_TEXT_INDENT, PR_TEXT_SHADOW, PR_TEXT_TRANSFORM, PR_TOP, PR_TREAT_AS_WORD_SPACE, PR_UNICODE_BIDI, PR_VERTICAL_ALIGN, PR_VISIBILITY, PR_VOICE_FAMILY, PR_VOLUME, PR_WHITE_SPACE, PR_WHITE_SPACE_COLLAPSE, PR_WHITE_SPACE_TREATMENT, PR_WIDOWS, PR_WIDTH, PR_WORD_SPACING, PR_WRAP_OPTION, PR_WRITING_MODE, PR_X_BLOCK_PROGRESSION_UNIT, PR_X_ORPHAN_CONTENT_LIMIT, PR_X_WIDOW_CONTENT_LIMIT, PR_XML_LANG, PR_Z_INDEX, PROPERTY_COUNT, PROPERTY_MASK
 
Constructor Summary
Java2DRenderer()
          Default constructor
 
Method Summary
protected  void beginTextObject()
          Indicates the beginning of a text object.
protected  java.util.List breakOutOfStateStack()
          Breaks out of the state stack to handle fixed block-containers.
 void clearViewportList()
          Clears the ViewportList.
protected  void clip()
          Clip using the current path.
protected  void clipRect(float x, float y, float width, float height)
          Clip using a rectangular area.
protected  void closePath()
          Closes the current subpath by appending a straight line segment from the current point to the starting point of the subpath.
 void configure(org.apache.avalon.framework.configuration.Configuration cfg)
           
protected  RendererContext createRendererContext(int x, int y, int width, int height, java.util.Map foreignAttributes)
          Creates a RendererContext for an image.
protected  void drawBorderLine(float x1, float y1, float x2, float y2, boolean horz, boolean startOrBefore, int style, java.awt.Color col)
          Draw a border segment of an XSL-FO style border.
static void drawBorderLine(java.awt.geom.Rectangle2D.Float lineRect, boolean horz, boolean startOrBefore, int style, java.awt.Color col, java.awt.Graphics2D g2d)
          Draw a border segment of an XSL-FO style border.
protected  void drawImage(java.lang.String url, java.awt.geom.Rectangle2D pos, java.util.Map foreignAttributes)
          Draw an image at the indicated location.
protected  void endTextObject()
          Indicates the end of a text object.
protected  void endVParea()
          Signals exit from a viewport area.
protected  void fillRect(float x, float y, float width, float height)
          Fill a rectangular area.
protected  java.awt.image.BufferedImage getBufferedImage(int bitmapWidth, int bitmapHeight)
          Returns a specific BufferedImage to paint a page image on.
 int getCurrentPageNumber()
           
 Graphics2DAdapter getGraphics2DAdapter()
           
 int getNumberOfPages()
           
 java.awt.image.BufferedImage getPageImage(int pageNum)
          Generates a desired page from the renderer's page viewport list.
 java.awt.image.BufferedImage getPageImage(PageViewport pageViewport)
          Generates a desired page from the renderer's page viewport list.
 PageViewport getPageViewport(int pageNum)
          Returns a page viewport.
 double getScaleFactor()
           
 FOUserAgent getUserAgent()
           
 boolean isRenderingDone()
           
protected  void lineTo(float x, float y)
          Appends a straight line segment from the current point to (x, y).
protected  void moveTo(float x, float y)
          Moves the current point to (x, y), omitting any connecting line segment.
 int print(java.awt.Graphics g, java.awt.print.PageFormat pageFormat, int pageIndex)
           
 void renderImage(Image image, java.awt.geom.Rectangle2D pos)
          Renders an image area.
 void renderLeader(Leader area)
          Render leader area.
 void renderPage(PageViewport pageViewport)
          This method override only stores the PageViewport in a List.
 void renderText(TextArea text)
          Render the given TextArea.
static void renderText(TextArea text, java.awt.Graphics2D g2d, Font font)
          Renders a TextArea to a Graphics2D instance.
protected  void restoreGraphicsState()
          Restores the last graphics state of the rendering engine.
protected  void restoreStateStackAfterBreakOut(java.util.List breakOutList)
          Restores the state stack after a break out.
protected  void saveGraphicsState()
          Saves the graphics state of the rendering engine.
 void setCurrentPageNumber(int c)
           
 void setScaleFactor(double newScaleFactor)
          Sets the new scale factor.
 void setupFontInfo(FontInfo inFontInfo)
          Set up the font info
 void setUserAgent(FOUserAgent foUserAgent)
          Set the User Agent.
 void startRenderer(java.io.OutputStream out)
          Initiates the rendering phase.
protected  void startVParea(CTM ctm, java.awt.geom.Rectangle2D clippingRect)
          Establishes a new viewport area.
 void stopRenderer()
          Signals the end of the rendering phase.
protected  void updateColor(java.awt.Color col, boolean fill)
          Establishes a new foreground or fill color.
 
Methods inherited from class org.apache.fop.render.AbstractPathOrientedRenderer
drawBackAndBorders, drawBorders, drawImage, handleBlockTraits, handleRegionTraits, renderBlockViewport, renderForeignObject, renderInlineAreaBackAndBorders, renderTextDecoration, renderViewport
 
Methods inherited from class org.apache.fop.render.PrintRenderer
getFontFromArea, getInternalFontNameForArea, lightenColor, renderDocument
 
Methods inherited from class org.apache.fop.render.AbstractRenderer
convertTitleToString, getCurrentPageViewport, getHandlerConfig, getImageAdapter, getMimeType, preparePage, processOffDocumentItem, renderBeforeFloat, renderBlock, renderBlocks, renderBodyRegion, renderCharacter, renderContainer, renderFlow, renderFootnote, renderInlineArea, renderInlineBlockParent, renderInlineParent, renderInlineSpace, renderLineArea, renderMainReference, renderPageAreas, renderRegion, renderRegionViewport, renderSpace, renderWord, renderXML, startPageSequence, supportsOutOfOrder
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

JAVA2D_TRANSPARENT_PAGE_BACKGROUND

public static final java.lang.String JAVA2D_TRANSPARENT_PAGE_BACKGROUND
Rendering Options key for the controlling the transparent page background option.

scaleFactor

protected double scaleFactor
The scale factor for the image size, values: ]0 ; 1]

pageWidth

protected int pageWidth
The page width in pixels

pageHeight

protected int pageHeight
The page height in pixels

pageViewportList

protected java.util.List pageViewportList
List of Viewports

antialiasing

protected boolean antialiasing
true if antialiasing is set

qualityRendering

protected boolean qualityRendering
true if qualityRendering is set

transparentPageBackground

protected boolean transparentPageBackground
false: paints a non-transparent white background, true: for a transparent background

state

protected Java2DGraphicsState state
The current state, holds a Graphics2D and its context
Constructor Detail

Java2DRenderer

public Java2DRenderer()
Default constructor
Method Detail

configure

public void configure(org.apache.avalon.framework.configuration.Configuration cfg)
               throws org.apache.avalon.framework.configuration.ConfigurationException
Overrides:
configure in class AbstractRenderer
See Also:
AbstractRenderer.configure( org.apache.avalon.framework.configuration.Configuration)

setUserAgent

public void setUserAgent(FOUserAgent foUserAgent)
Description copied from interface: Renderer
Set the User Agent.
Overrides:
setUserAgent in class AbstractRenderer
See Also:
Renderer.setUserAgent(org.apache.fop.apps.FOUserAgent)

getUserAgent

public FOUserAgent getUserAgent()
Returns:
the FOUserAgent

setupFontInfo

public void setupFontInfo(FontInfo inFontInfo)
Description copied from class: PrintRenderer
Set up the font info
Overrides:
setupFontInfo in class PrintRenderer
See Also:
Renderer.setupFontInfo(org.apache.fop.fonts.FontInfo)

getGraphics2DAdapter

public Graphics2DAdapter getGraphics2DAdapter()
Overrides:
getGraphics2DAdapter in class AbstractRenderer
See Also:
Renderer.getGraphics2DAdapter()

setScaleFactor

public void setScaleFactor(double newScaleFactor)
Sets the new scale factor.
Parameters:
newScaleFactor - ]0 ; 1]

getScaleFactor

public double getScaleFactor()
Returns:
the scale factor

startRenderer

public void startRenderer(java.io.OutputStream out)
                   throws java.io.IOException
Description copied from interface: Renderer
Initiates the rendering phase. This must only be called once for a rendering. If stopRenderer is called then this may be called again for a new document rendering.
Overrides:
startRenderer in class AbstractRenderer
See Also:
Renderer.startRenderer(java.io.OutputStream)

stopRenderer

public void stopRenderer()
                  throws java.io.IOException
Description copied from interface: Renderer
Signals the end of the rendering phase. The renderer should reset to an initial state and dispose of any resources for the completed rendering.
Overrides:
stopRenderer in class AbstractRenderer
See Also:
Renderer.stopRenderer()

isRenderingDone

public boolean isRenderingDone()
Returns:
true if the renderer is not currently processing

getCurrentPageNumber

public int getCurrentPageNumber()
Returns:
The 0-based current page number

setCurrentPageNumber

public void setCurrentPageNumber(int c)
Parameters:
c - the 0-based current page number

getNumberOfPages

public int getNumberOfPages()
Returns:
The 0-based total number of rendered pages

clearViewportList

public void clearViewportList()
Clears the ViewportList. Used if the document is reloaded.

renderPage

public void renderPage(PageViewport pageViewport)
                throws java.io.IOException
This method override only stores the PageViewport in a List. No actual rendering is performed here. A renderer override renderPage() to get the freshly produced PageViewport, and rendere them on the fly (producing the desired BufferedImages by calling getPageImage(), which lazily starts the rendering process).
Overrides:
renderPage in class AbstractRenderer
Parameters:
pageViewport - the PageViewport object supplied by the Area Tree
Throws:
java.io.IOException - In case of an I/O error
See Also:
Renderer

getPageImage

public java.awt.image.BufferedImage getPageImage(PageViewport pageViewport)
Generates a desired page from the renderer's page viewport list.
Parameters:
pageViewport - the PageViewport to be rendered
Returns:
the java.awt.image.BufferedImage corresponding to the page or null if the page doesn't exist.

getBufferedImage

protected java.awt.image.BufferedImage getBufferedImage(int bitmapWidth,
                                                        int bitmapHeight)
Returns a specific BufferedImage to paint a page image on. This method can be overridden in subclasses to produce different image formats (ex. grayscale or b/w).
Parameters:
bitmapWidth - width of the image in pixels
bitmapHeight - heigth of the image in pixels
Returns:
the newly created BufferedImage

getPageViewport

public PageViewport getPageViewport(int pageNum)
                             throws FOPException
Returns a page viewport.
Parameters:
pageNum - the page number
Returns:
the requested PageViewport instance
Throws:
FOPException - If the page is out of range.

getPageImage

public java.awt.image.BufferedImage getPageImage(int pageNum)
                                          throws FOPException
Generates a desired page from the renderer's page viewport list.
Parameters:
pageNum - the 0-based page number to generate
Returns:
the java.awt.image.BufferedImage corresponding to the page or null if the page doesn't exist.
Throws:
FOPException - If there's a problem preparing the page image

saveGraphicsState

protected void saveGraphicsState()
Saves the graphics state of the rendering engine.
Overrides:
saveGraphicsState in class AbstractPathOrientedRenderer

restoreGraphicsState

protected void restoreGraphicsState()
Restores the last graphics state of the rendering engine.
Overrides:
restoreGraphicsState in class AbstractPathOrientedRenderer

startVParea

protected void startVParea(CTM ctm,
                           java.awt.geom.Rectangle2D clippingRect)
Description copied from class: AbstractRenderer
Establishes a new viewport area.
Overrides:
startVParea in class AbstractRenderer
See Also:
AbstractRenderer.startVParea(CTM, Rectangle2D)

endVParea

protected void endVParea()
Description copied from class: AbstractRenderer
Signals exit from a viewport area. Subclasses can restore transformation matrices valid before the viewport area was started.
Overrides:
endVParea in class AbstractRenderer
See Also:
AbstractRenderer.endVParea()

breakOutOfStateStack

protected java.util.List breakOutOfStateStack()
Description copied from class: AbstractPathOrientedRenderer
Breaks out of the state stack to handle fixed block-containers.
Overrides:
breakOutOfStateStack in class AbstractPathOrientedRenderer
See Also:
AbstractPathOrientedRenderer.breakOutOfStateStack()

restoreStateStackAfterBreakOut

protected void restoreStateStackAfterBreakOut(java.util.List breakOutList)
Description copied from class: AbstractPathOrientedRenderer
Restores the state stack after a break out.
Overrides:
restoreStateStackAfterBreakOut in class AbstractPathOrientedRenderer
See Also:
AbstractPathOrientedRenderer.restoreStateStackAfterBreakOut( java.util.List)

updateColor

protected void updateColor(java.awt.Color col,
                           boolean fill)
Description copied from class: AbstractPathOrientedRenderer
Establishes a new foreground or fill color.
Overrides:
updateColor in class AbstractPathOrientedRenderer
See Also:
AbstractPathOrientedRenderer.updateColor(Color, boolean)

clip

protected void clip()
Description copied from class: AbstractPathOrientedRenderer
Clip using the current path.
Overrides:
clip in class AbstractPathOrientedRenderer
See Also:
AbstractPathOrientedRenderer.clip()

closePath

protected void closePath()
Description copied from class: AbstractPathOrientedRenderer
Closes the current subpath by appending a straight line segment from the current point to the starting point of the subpath.
Overrides:
closePath in class AbstractPathOrientedRenderer
See Also:
AbstractPathOrientedRenderer.closePath()

lineTo

protected void lineTo(float x,
                      float y)
Description copied from class: AbstractPathOrientedRenderer
Appends a straight line segment from the current point to (x, y). The new current point is (x, y).
Overrides:
lineTo in class AbstractPathOrientedRenderer
See Also:
AbstractPathOrientedRenderer.lineTo(float, float)

moveTo

protected void moveTo(float x,
                      float y)
Description copied from class: AbstractPathOrientedRenderer
Moves the current point to (x, y), omitting any connecting line segment.
Overrides:
moveTo in class AbstractPathOrientedRenderer
See Also:
AbstractPathOrientedRenderer.moveTo(float, float)

clipRect

protected void clipRect(float x,
                        float y,
                        float width,
                        float height)
Description copied from class: AbstractPathOrientedRenderer
Clip using a rectangular area.
Overrides:
clipRect in class AbstractPathOrientedRenderer
See Also:
AbstractPathOrientedRenderer.clipRect(float, float, float, float)

fillRect

protected void fillRect(float x,
                        float y,
                        float width,
                        float height)
Description copied from class: AbstractPathOrientedRenderer
Fill a rectangular area.
Overrides:
fillRect in class AbstractPathOrientedRenderer
See Also:
AbstractPathOrientedRenderer.fillRect(float, float, float, float)

drawBorderLine

protected void drawBorderLine(float x1,
                              float y1,
                              float x2,
                              float y2,
                              boolean horz,
                              boolean startOrBefore,
                              int style,
                              java.awt.Color col)
Description copied from class: AbstractPathOrientedRenderer
Draw a border segment of an XSL-FO style border.
Overrides:
drawBorderLine in class AbstractPathOrientedRenderer
See Also:
AbstractPathOrientedRenderer.drawBorderLine(float, float, float, float, boolean, boolean, int, Color)

drawBorderLine

public static void drawBorderLine(java.awt.geom.Rectangle2D.Float lineRect,
                                  boolean horz,
                                  boolean startOrBefore,
                                  int style,
                                  java.awt.Color col,
                                  java.awt.Graphics2D g2d)
Draw a border segment of an XSL-FO style border.
Parameters:
lineRect - the line defined by its bounding rectangle
horz - true for horizontal border segments, false for vertical border segments
startOrBefore - true for border segments on the start or before edge, false for end or after.
style - the border style (one of Constants.EN_DASHED etc.)
col - the color for the border segment
g2d - the Graphics2D instance to paint to

renderText

public void renderText(TextArea text)
Description copied from class: AbstractRenderer
Render the given TextArea.
Overrides:
renderText in class AbstractRenderer
See Also:
AbstractRenderer.renderText(TextArea)

renderText

public static void renderText(TextArea text,
                              java.awt.Graphics2D g2d,
                              Font font)
Renders a TextArea to a Graphics2D instance. Adjust the coordinate system so that the start of the baseline of the first character is at coordinate (0,0).
Parameters:
text - the TextArea
g2d - the Graphics2D to render to
font - the font to paint with

renderLeader

public void renderLeader(Leader area)
Render leader area. This renders a leader area which is an area with a rule.
Overrides:
renderLeader in class AbstractRenderer
Parameters:
area - the leader area to render

renderImage

public void renderImage(Image image,
                        java.awt.geom.Rectangle2D pos)
Description copied from class: AbstractRenderer
Renders an image area.
Overrides:
renderImage in class AbstractRenderer
See Also:
AbstractRenderer.renderImage(Image, Rectangle2D)

drawImage

protected void drawImage(java.lang.String url,
                         java.awt.geom.Rectangle2D pos,
                         java.util.Map foreignAttributes)
Description copied from class: AbstractPathOrientedRenderer
Draw an image at the indicated location.
Overrides:
drawImage in class AbstractPathOrientedRenderer
See Also:
AbstractPathOrientedRenderer.drawImage( java.lang.String, java.awt.geom.Rectangle2D, java.util.Map)

createRendererContext

protected RendererContext createRendererContext(int x,
                                                int y,
                                                int width,
                                                int height,
                                                java.util.Map foreignAttributes)
Description copied from class: PrintRenderer
Creates a RendererContext for an image.
Overrides:
createRendererContext in class PrintRenderer
See Also:
PrintRenderer.createRendererContext( int, int, int, int, java.util.Map)

print

public int print(java.awt.Graphics g,
                 java.awt.print.PageFormat pageFormat,
                 int pageIndex)
          throws java.awt.print.PrinterException
Specified by:
print in interface java.awt.print.Printable
See Also:
Printable.print(java.awt.Graphics, java.awt.print.PageFormat, int)

beginTextObject

protected void beginTextObject()
Description copied from class: AbstractPathOrientedRenderer
Indicates the beginning of a text object.
Overrides:
beginTextObject in class AbstractPathOrientedRenderer
See Also:
AbstractPathOrientedRenderer.beginTextObject()

endTextObject

protected void endTextObject()
Description copied from class: AbstractPathOrientedRenderer
Indicates the end of a text object.
Overrides:
endTextObject in class AbstractPathOrientedRenderer
See Also:
AbstractPathOrientedRenderer.endTextObject()

fop 0.93

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