fop 1.1

## 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:
  java.awt.print.Printable, Constants, Renderer

Direct Known Subclasses:
  AWTRenderer, PageableRenderer, PNGRenderer, 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 anti-aliasing 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.AbstractPathOrientedRenderer
`FOX_TRANSFORM`

Fields inherited from class org.apache.fop.render.PrintRenderer
`embedFontInfoList, fontInfo, 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_ALTERNATE, 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_BT, 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_FIRST_STARTING, 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_LAST_ENDING, EN_LAST_STARTING, EN_LEAVE_SEPARATE, EN_LEFT, EN_LEWP, EN_LIGHTER, EN_LINE, EN_LINE_HEIGHT, EN_LINE_THROUGH, EN_LINK, EN_LOWERCASE, EN_LR, EN_LR_TB, EN_LSWP, EN_LTR, EN_MATHEMATICAL, EN_MAX_HEIGHT, EN_MENU, EN_MERGE, EN_MESSAGE_BOX, EN_MIDDLE, EN_NARROWER, EN_NEW, EN_NO_BLINK, EN_NO_CHANGE, EN_NO_FORCE, EN_NO_LIMIT, EN_NO_LINE_THROUGH, EN_NO_LINK, 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_ONLY, 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_REPLACE, EN_RESAMPLE_ANY_METHOD, EN_RESET_SIZE, EN_REST, EN_RETAIN, EN_RIDGE, EN_RIGHT, EN_RL, EN_RL_TB, EN_RTL, EN_RULE, EN_SATURATION, EN_SCALE_DOWN_TO_FIT, EN_SCALE_TO_FIT, EN_SCALE_UP_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_TABLE, EN_TABLE_FRAGMENT, EN_TB, EN_TB_LR, 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_CHANGE_BAR_BEGIN, FO_CHANGE_BAR_END, FO_CHARACTER, FO_COLOR_PROFILE, FO_CONDITIONAL_PAGE_MASTER_REFERENCE, FO_DECLARATIONS, FO_EXTERNAL_GRAPHIC, FO_FLOAT, FO_FLOW, FO_FLOW_ASSIGNMENT, FO_FLOW_MAP, FO_FLOW_NAME_SPECIFIER, FO_FLOW_SOURCE_LIST, FO_FLOW_TARGET_LIST, FO_FOLIO_PREFIX, FO_FOLIO_SUFFIX, FO_FOOTNOTE, FO_FOOTNOTE_BODY, FO_INDEX_KEY_REFERENCE, FO_INDEX_PAGE_CITATION_LIST, FO_INDEX_PAGE_CITATION_LIST_SEPARATOR, FO_INDEX_PAGE_CITATION_RANGE_SEPARATOR, FO_INDEX_PAGE_NUMBER_PREFIX, FO_INDEX_PAGE_NUMBER_SUFFIX, FO_INDEX_RANGE_BEGIN, FO_INDEX_RANGE_END, 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_NAME_SPECIFIER, FO_REGION_START, FO_REPEATABLE_PAGE_MASTER_ALTERNATIVES, FO_REPEATABLE_PAGE_MASTER_REFERENCE, FO_RETRIEVE_MARKER, FO_RETRIEVE_TABLE_MARKER, FO_ROOT, FO_SCALING_VALUE_CITATION, 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_CHANGE_BAR_CLASS, PR_CHANGE_BAR_COLOR, PR_CHANGE_BAR_OFFSET, PR_CHANGE_BAR_PLACEMENT, PR_CHANGE_BAR_STYLE, PR_CHANGE_BAR_WIDTH, 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_MAP_NAME, PR_FLOW_MAP_REFERENCE, PR_FLOW_NAME, PR_FLOW_NAME_REFERENCE, 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_INTRINSIC_SCALE_VALUE, 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_MERGE_PAGES_ACROSS_INDEX_KEY_REFERENCES, PR_MERGE_RANGES_ACROSS_INDEX_KEY_REFERENCES, PR_MERGE_SEQUENTIAL_PAGE_NUMBERS, 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_CITATION_STRATEGY, PR_PAGE_HEIGHT, PR_PAGE_NUMBER_TREATMENT, 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_REF_INDEX_KEY, PR_REFERENCE_ORIENTATION, PR_REGION_NAME, PR_REGION_NAME_REFERENCE, PR_RELATIVE_ALIGN, PR_RELATIVE_POSITION, PR_RENDERING_INTENT, PR_RETRIEVE_BOUNDARY, PR_RETRIEVE_BOUNDARY_WITHIN_TABLE, PR_RETRIEVE_CLASS_NAME, PR_RETRIEVE_POSITION, PR_RETRIEVE_POSITION_WITHIN_TABLE, 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_ALT_TEXT, PR_X_BLOCK_PROGRESSION_UNIT, PR_X_DISABLE_COLUMN_BALANCING, PR_X_NUMBER_CONVERSION_FEATURES, PR_X_ORPHAN_CONTENT_LIMIT, PR_X_WIDOW_CONTENT_LIMIT, PR_X_XML_BASE, PR_XML_LANG, PR_Z_INDEX, PROPERTY_COUNT, PROPERTY_MASK`

Constructor Summary
`Java2DRenderer(FOUserAgent userAgent)` 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 void` `concatenateTransformationMatrix(java.awt.geom.AffineTransform at)` Concatenates the current transformation matrix with the given one, therefore establishing a new coordinate system.
`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 uri, 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()` Returns the number of pages available.
`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 pageIndex)` Returns a page viewport.
`double` `getScaleFactor()`
`FOUserAgent` `getUserAgent()` Returns the associated user agent.
`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)`
`protected void` `rememberPage(PageViewport pageViewport)` Stores the pageViewport in a list of page viewports so they can be rendered later.
`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)` Controls the page background.
`void` `setupFontInfo(FontInfo inFontInfo)` Set up the given FontInfo.
`void` `startRenderer(java.io.OutputStream out)` Initiates the rendering phase.
`protected void` `startVParea(CTM ctm, java.awt.Rectangle 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, drawBackAndBorders, drawBackground, drawBackground, drawBorders, drawBorders, drawImage, establishTransformationMatrix, handleBlockTraits, handleRegionTraits, renderBlockViewport, renderFlow, renderForeignObject, renderInlineAreaBackAndBorders, renderInlineViewport, renderReferenceArea, renderTextDecoration`

Methods inherited from class org.apache.fop.render.PrintRenderer
`addFontList, getFontFromArea, getFontInfo, getFontList, getFontResolver, getInternalFontNameForArea, instantiateRendererContext, renderDocument, setFontList`

Methods inherited from class org.apache.fop.render.AbstractRenderer

`convertTitleToString, getCurrentPageViewport, getImageAdapter, mptToPt, preparePage, processOffDocumentItem, ptToMpt, renderBeforeFloat, renderBlock, renderBlocks, renderBodyRegion, renderContainer, renderFootnote, renderInlineArea, renderInlineBlockParent, renderInlineParent, renderInlineSpace, renderLineArea, renderMainReference, renderPageAreas, renderRegion, renderRegionViewport, renderSpace, renderWord, renderXML, setDocumentLocale, startPageSequence, startPageSequence, supportsOutOfOrder`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.apache.fop.render.Renderer
`getMimeType`

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 anti-aliasing 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(FOUserAgent userAgent)

  Default constructor

  Parameters:
    `userAgent` - the user agent that contains configuration details. This cannot be null.

Method Detail

### getUserAgent

    public FOUserAgent getUserAgent()

  Description copied from class: `AbstractRenderer`
  Returns the associated user agent.

  Specified by:
    `getUserAgent` in interface `Renderer`
  Overrides:
    `getUserAgent` in class `AbstractRenderer`
  Returns:
    the FOUserAgent

### setupFontInfo

    public void setupFontInfo(FontInfo inFontInfo)

  Set up the given FontInfo.

  Specified by:
    `setupFontInfo` in interface `Renderer`
  Overrides:
    `setupFontInfo` in class `PrintRenderer`
  Parameters:
    `inFontInfo` - The font information

### 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)

### 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

  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

### stopRenderer

    public void stopRenderer()
                      throws java.io.IOException

  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

### 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 number of pages available. This method is also part of the Pageable interface.

  Returns:
    The 0-based total number of rendered pages
  See Also:
    `Pageable`

### clearViewportList

    public void clearViewportList()

  Clears the ViewportList. Used if the document is reloaded.

### renderPage

    public void renderPage(PageViewport pageViewport)
                    throws java.io.IOException,
                           FOPException

  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 render 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
    `FOPException` - if cloning of pageViewport is not supported
  See Also:
    `Renderer`

### rememberPage

    protected void rememberPage(PageViewport pageViewport)

  Stores the pageViewport in a list of page viewports so they can be rendered later. Subclasses can override this method to filter pages, for example.

  Parameters:
    `pageViewport` - the page viewport

### 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 pageIndex)
                                 throws FOPException

  Returns a page viewport.

  Parameters:
    `pageIndex` - the page index (zero-based)
  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`

### concatenateTransformationMatrix

    protected void concatenateTransformationMatrix(java.awt.geom.AffineTransform at)

  Concatenates the current transformation matrix with the given one, therefore establishing a new coordinate system.

  Specified by:
    `concatenateTransformationMatrix` in class `AbstractPathOrientedRenderer`
  Parameters:
    `at` - the transformation matrix to process (coordinates in points)

### startVParea

    protected void startVParea(CTM ctm,
                               java.awt.Rectangle clippingRect)

  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.

### endVParea

    protected void endVParea()

  Signals exit from a viewport area. Subclasses can restore transformation matrices valid before the viewport area was started.

  Specified by:
    `endVParea` in class `AbstractRenderer`

### breakOutOfStateStack

    protected java.util.List breakOutOfStateStack()

  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

### restoreStateStackAfterBreakOut

    protected void restoreStateStackAfterBreakOut(java.util.List breakOutList)

  Restores the state stack after a break out.

  Specified by:
    `restoreStateStackAfterBreakOut` in class `AbstractPathOrientedRenderer`
  Parameters:
    `breakOutList` - the state stack to restore.

### updateColor

    protected void updateColor(java.awt.Color col,
                               boolean fill)

  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

### clip

    protected void clip()

  Clip using the current path.

  Specified by:
    `clip` in class `AbstractPathOrientedRenderer`

### closePath

    protected void closePath()

  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`

### lineTo

    protected void lineTo(float x,
                          float y)

  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

### moveTo

    protected void moveTo(float x,
                          float y)

  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

### clipRect

    protected void clipRect(float x,
                            float y,
                            float width,
                            float height)

  Clip using a rectangular area.

  Specified by:
    `clipRect` in class `AbstractPathOrientedRenderer`
  Parameters:
    `x` - the x coordinate (in points)
    `y` - the y coordinate (in points)
    `width` - the width of the rectangle (in points)
    `height` - the height of the rectangle (in points)

### fillRect

    protected void fillRect(float x,
                            float y,
                            float width,
                            float height)

  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

### drawBorderLine

    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.

  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

### 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)

  Render the given TextArea.

  Overrides:
    `renderText` in class `AbstractRenderer`
  Parameters:
    `text` - the text to render

### 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)

  Renders an image area.

  Overrides:
    `renderImage` in class `AbstractRenderer`
  Parameters:
    `image` - The image
    `pos` - The target position of the image (todo) Make renderImage() protected

### drawImage

    protected void drawImage(java.lang.String uri,
                             java.awt.geom.Rectangle2D pos,
                             java.util.Map foreignAttributes)

  Draw an image at the indicated location.

  Specified by:
    `drawImage` in class `AbstractPathOrientedRenderer`
  Parameters:
    `uri` - the URI/URL of the image
    `pos` - the position of the image
    `foreignAttributes` - an optional Map with foreign attributes, may be null

### createRendererContext

    protected RendererContext createRendererContext(int x,
                                                    int y,
                                                    int width,
                                                    int height,
                                                    java.util.Map foreignAttributes)

  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

### 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`

### beginTextObject

    protected void beginTextObject()

  Indicates the beginning of a text object.

  Specified by:
    `beginTextObject` in class `AbstractPathOrientedRenderer`

### endTextObject

    protected void endTextObject()

  Indicates the end of a text object.

  Specified by:
    `endTextObject` in class `AbstractPathOrientedRenderer`

### setTransparentPageBackground

    public void setTransparentPageBackground(boolean transparentPageBackground)

  Controls the page background.

  Parameters:
    `transparentPageBackground` - true if the background should be transparent

fop 1.1

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