fop 0.94

org.apache.fop.render.java2d
Class Java2DRenderer

java.lang.Object
  extended by org.apache.fop.render.AbstractRenderer
      extended by org.apache.fop.render.PrintRenderer
          extended by org.apache.fop.render.AbstractPathOrientedRenderer
              extended by org.apache.fop.render.java2d.Java2DRenderer
All Implemented Interfaces:
java.awt.print.Printable, Constants, Renderer
Direct Known Subclasses:
AWTRenderer, PNGRenderer, PNGRenderer_onthefly, PrintRenderer, SVGRenderer, 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, fontResolver
 
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.
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 setTransparentPageBackground(boolean transparentPageBackground)
           
 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
addFontList, getFontFromArea, getFontResolver, getInternalFontNameForArea, lightenColor, renderDocument, setFontList
 
Methods inherited from class org.apache.fop.render.AbstractRenderer
convertTitleToString, getCurrentPageViewport, 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.

See Also:
Constant Field Values

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

setUserAgent

public void setUserAgent(FOUserAgent foUserAgent)
Description copied from interface: Renderer
Set the User Agent.

Specified by:
setUserAgent in interface Renderer
Overrides:
setUserAgent in class AbstractRenderer
Parameters:
foUserAgent - The User Agent
See Also:
Renderer.setUserAgent(org.apache.fop.apps.FOUserAgent)

getUserAgent

public FOUserAgent getUserAgent()
Overrides:
getUserAgent in class AbstractRenderer
Returns:
the FOUserAgent
See Also:
org.apache.fop.render.Renderer#getUserAgent()

setupFontInfo

public void setupFontInfo(FontInfo inFontInfo)
Description copied from class: PrintRenderer
Set up the font info

Specified by:
setupFontInfo in interface Renderer
Overrides:
setupFontInfo in class PrintRenderer
Parameters:
inFontInfo - font info to set up
See Also:
Renderer.setupFontInfo(org.apache.fop.fonts.FontInfo)

getGraphics2DAdapter

public Graphics2DAdapter getGraphics2DAdapter()
Specified by:
getGraphics2DAdapter in interface Renderer
Overrides:
getGraphics2DAdapter in class AbstractRenderer
Returns:
the adapter for painting Java2D images (or null if not supported)
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.

Specified by:
startRenderer in interface Renderer
Overrides:
startRenderer in class AbstractRenderer
Parameters:
out - The OutputStream to use for output
Throws:
java.io.IOException - If an I/O error occurs
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.

Specified by:
stopRenderer in interface Renderer
Overrides:
stopRenderer in class AbstractRenderer
Throws:
java.io.IOException - If an I/O error occurs
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).

Specified by:
renderPage in interface Renderer
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.

Specified by:
saveGraphicsState in class AbstractPathOrientedRenderer

restoreGraphicsState

protected void restoreGraphicsState()
Restores the last graphics state of the rendering engine.

Specified by:
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.

Specified by:
startVParea in class AbstractRenderer
Parameters:
ctm - the coordinate transformation matrix to use
clippingRect - the clipping rectangle if the viewport should be clipping, null if no clipping is performed.
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.

Specified by:
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.

Specified by:
breakOutOfStateStack in class AbstractPathOrientedRenderer
Returns:
the saved state stack to recreate later
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.

Specified by:
restoreStateStackAfterBreakOut in class AbstractPathOrientedRenderer
Parameters:
breakOutList - the state stack to restore.
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.

Specified by:
updateColor in class AbstractPathOrientedRenderer
Parameters:
col - the color to apply (null skips this operation)
fill - true to set the fill color, false for the foreground color
See Also:
AbstractPathOrientedRenderer.updateColor(Color, boolean)

clip

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

Specified by:
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.

Specified by:
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).

Specified by:
lineTo in class AbstractPathOrientedRenderer
Parameters:
x - x coordinate
y - y coordinate
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.

Specified by:
moveTo in class AbstractPathOrientedRenderer
Parameters:
x - x coordinate
y - y coordinate
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.

Specified by:
clipRect in class AbstractPathOrientedRenderer
Parameters:
x - the x coordinate
y - the y coordinate
width - the width of the rectangle
height - the height of the rectangle
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.

Specified by:
fillRect in class AbstractPathOrientedRenderer
Parameters:
x - the x coordinate
y - the y coordinate
width - the width of the rectangle
height - the height of the rectangle
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.

Specified by:
drawBorderLine in class AbstractPathOrientedRenderer
Parameters:
x1 - starting x coordinate
y1 - starting y coordinate
x2 - ending x coordinate
y2 - ending y coordinate
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
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
Parameters:
text - the text to render
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
Parameters:
image - The image
pos - The target position of the image (todo) Make renderImage() protected
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.

Specified by:
drawImage in class AbstractPathOrientedRenderer
Parameters:
url - the URI/URL of the image
pos - the position of the image
foreignAttributes - an optional Map with foreign attributes, may be null
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
Parameters:
x - the x coordinate (in millipoints)
y - the y coordinate (in millipoints)
width - the width of the image (in millipoints)
height - the height of the image (in millipoints)
foreignAttributes - a Map or foreign attributes, may be null
Returns:
the RendererContext
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
Throws:
java.awt.print.PrinterException
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.

Specified by:
beginTextObject in class AbstractPathOrientedRenderer
See Also:
AbstractPathOrientedRenderer.beginTextObject()

endTextObject

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

Specified by:
endTextObject in class AbstractPathOrientedRenderer
See Also:
AbstractPathOrientedRenderer.endTextObject()

setTransparentPageBackground

public void setTransparentPageBackground(boolean transparentPageBackground)

fop 0.94

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