org.apache.fop.render

## Class AbstractPathOrientedRenderer

- java.lang.Object
- - org.apache.fop.render.AbstractRenderer
  - - org.apache.fop.render.PrintRenderer
    - - org.apache.fop.render.AbstractPathOrientedRenderer

- All Implemented Interfaces:
    Constants, Renderer
  Direct Known Subclasses:
    IFRenderer, Java2DRenderer, TXTRenderer

      public abstract class AbstractPathOrientedRenderer
      extends PrintRenderer

  Abstract base class for renderers like PDF and PostScript where many painting operations follow similar patterns which makes it possible to share some code.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static org.apache.xmlgraphics.util.QName` | `FOX_TRANSFORM` Constant for the fox:transform extension attribute

    - ### Fields inherited from class org.apache.fop.render.PrintRenderer

      `embedFontInfoList, fontInfo`

    - ### Fields inherited from class org.apache.fop.render.AbstractRenderer

      `bindingOnEndEdge, bindingOnStartEdge, blockProgressionDirection, columnCount, columnEndIPPosition, columnGap, columnIndex, columnLeftIPPosition, columnRightIPPosition, columnStartIPPosition, columnWidth, containingBPPosition, containingIPPosition, currentBPPosition, currentIPPosition, currentPageViewport, inlineProgressionDirection, log, userAgent`

    - ### 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_INCLUDING_CARRYOVER, 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_SELECT_FIRST_FITTING, 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, 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_ABBREVIATION, PR_X_ALT_TEXT, PR_X_AUTO_TOGGLE, PR_X_BACKGROUND_IMAGE_HEIGHT, PR_X_BACKGROUND_IMAGE_WIDTH, PR_X_BORDER_AFTER_END_RADIUS, PR_X_BORDER_AFTER_RADIUS_END, PR_X_BORDER_AFTER_RADIUS_START, PR_X_BORDER_AFTER_START_RADIUS, PR_X_BORDER_BEFORE_END_RADIUS, PR_X_BORDER_BEFORE_RADIUS_END, PR_X_BORDER_BEFORE_RADIUS_START, PR_X_BORDER_BEFORE_START_RADIUS, PR_X_BORDER_END_RADIUS_AFTER, PR_X_BORDER_END_RADIUS_BEFORE, PR_X_BORDER_RADIUS, PR_X_BORDER_START_RADIUS_AFTER, PR_X_BORDER_START_RADIUS_BEFORE, PR_X_DISABLE_COLUMN_BALANCING, PR_X_HEADER_COLUMN, PR_X_LAYER, 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

    Constructors
    Constructor and Description
    `AbstractPathOrientedRenderer(FOUserAgent userAgent)`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected abstract void` | `beginTextObject()` Indicates the beginning of a text object.
    `protected abstract java.util.List` | `breakOutOfStateStack()` Breaks out of the state stack to handle fixed block-containers.
    `protected abstract void` | `clip()` Clip using the current path.
    `protected void` | `clipBackground(float startx, float starty, float width, float height, BorderProps bpsBefore, BorderProps bpsAfter, BorderProps bpsStart, BorderProps bpsEnd)` TODO represent border related parameters in a class Clip the background to the inner border.
    `protected abstract void` | `clipRect(float x, float y, float width, float height)` Clip using a rectangular area.
    `protected abstract void` | `closePath()` Closes the current subpath by appending a straight line segment from the current point to the starting point of the subpath.
    `protected abstract void` | `concatenateTransformationMatrix(java.awt.geom.AffineTransform at)` Concatenates the current transformation matrix with the given one, therefore establishing a new coordinate system.
    `protected void` | `drawBackAndBorders(Area backgroundArea, Area borderArea, float startx, float starty, float width, float height)` Draw the background and borders.
    `protected void` | `drawBackAndBorders(Area area, float startx, float starty, float width, float height)` Draw the background and borders.
    `protected void` | `drawBackground(float startx, float starty, float width, float height, Trait.Background back, BorderProps bpsTop, BorderProps bpsBottom, BorderProps bpsLeft, BorderProps bpsRight)` Draw the background.
    `protected void` | `drawBackground(float startx, float starty, float width, float height, Trait.Background back, BorderProps bpsBefore, BorderProps bpsAfter, BorderProps bpsStart, BorderProps bpsEnd, int level)` Draw the background.
    `protected abstract 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.
    `protected void` | `drawBorders(float startx, float starty, float width, float height, BorderProps bpsBefore, BorderProps bpsAfter, BorderProps bpsStart, BorderProps bpsEnd, int level, java.awt.Color innerBackgroundColor)` Draw the borders.
    `protected void` | `drawBorders(java.awt.geom.Rectangle2D.Float borderRect, BorderProps bpsTop, BorderProps bpsBottom, BorderProps bpsLeft, BorderProps bpsRight, java.awt.Color innerBackgroundColor)` Draws borders.
    `protected void` | `drawImage(java.lang.String url, java.awt.geom.Rectangle2D pos)` Draw an image at the indicated location.
    `protected abstract void` | `drawImage(java.lang.String url, java.awt.geom.Rectangle2D pos, java.util.Map foreignAttributes)` Draw an image at the indicated location.
    `protected abstract void` | `endTextObject()` Indicates the end of a text object.
    `protected void` | `establishTransformationMatrix(java.awt.geom.AffineTransform at)` Establishes a new coordinate system with the given transformation matrix.
    `protected abstract void` | `fillRect(float x, float y, float width, float height)` Fill a rectangular area.
    `protected void` | `handleBlockTraits(Block block)` Handle block traits.
    `protected void` | `handleRegionTraits(RegionViewport region)` Handle the traits for a region This is used to draw the traits for the given page region.
    `protected abstract void` | `lineTo(float x, float y)` Appends a straight line segment from the current point to (x, y).
    `protected abstract void` | `moveTo(float x, float y)` Moves the current point to (x, y), omitting any connecting line segment.
    `protected void` | `renderBlockViewport(BlockViewport bv, java.util.List children)` Renders a block viewport.
    `protected void` | `renderFlow(NormalFlow flow)` Renders a flow reference area.
    `void` | `renderForeignObject(ForeignObject fo, java.awt.geom.Rectangle2D pos)` Renders a foreign object area.
    `protected void` | `renderInlineAreaBackAndBorders(InlineArea area)` Common method to render the background and borders for any inline area.
    `void` | `renderInlineViewport(InlineViewport viewport)` Render an inline viewport.
    `protected void` | `renderReferenceArea(Block block)` Renders a block area that represents a reference area.
    `protected void` | `renderTextDecoration(FontMetrics fm, int fontsize, InlineArea inline, int baseline, int startx)` Paints the text decoration marks.
    `protected abstract void` | `restoreGraphicsState()` Restores the last graphics state of the rendering engine.
    `protected abstract void` | `restoreStateStackAfterBreakOut(java.util.List breakOutList)` Restores the state stack after a break out.
    `protected abstract void` | `saveGraphicsState()` Saves the graphics state of the rendering engine.
    `protected abstract void` | `updateColor(java.awt.Color col, boolean fill)` Establishes a new foreground or fill color.

    - ### Methods inherited from class org.apache.fop.render.PrintRenderer

      `addFontList, createRendererContext, getFontFromArea, getFontInfo, getFontList, getInternalFontNameForArea, instantiateRendererContext, renderDocument, setFontList, setupFontInfo`

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

      `convertTitleToString, drawChangeBars, endLayer, endVParea, getBeginOffset, getCurrentPageViewport, getGraphics2DAdapter, getImageAdapter, getUserAgent, maybeEndLayer, maybeStartLayer, mptToPt, preparePage, processOffDocumentItem, ptToMpt, renderBeforeFloat, renderBlock, renderBlocks, renderBodyRegion, renderContainer, renderFootnote, renderImage, renderInlineArea, renderInlineBlock, renderInlineBlockParent, renderInlineParent, renderInlineSpace, renderLeader, renderLineArea, renderMainReference, renderPage, renderPageAreas, renderRegion, renderRegionViewport, renderSpace, renderText, renderWord, renderXML, setBeginOffset, setDocumentLocale, startLayer, startPageSequence, startPageSequence, startRenderer, startVParea, stopRenderer, 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

    - #### FOX_TRANSFORM

          protected static final org.apache.xmlgraphics.util.QName FOX_TRANSFORM

      Constant for the fox:transform extension attribute

  - ### Constructor Detail

    - #### AbstractPathOrientedRenderer

          public AbstractPathOrientedRenderer(FOUserAgent userAgent)

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

  - ### Method Detail

    - #### handleBlockTraits

          protected void handleBlockTraits(Block block)

      Handle block traits. The block could be any sort of block with any positioning so this should render the traits such as border and background in its position.
      Overrides:
        `handleBlockTraits` in class `AbstractRenderer`
      Parameters:
        `block` - the block to render the traits

    - #### handleRegionTraits

          protected void handleRegionTraits(RegionViewport region)

      Handle the traits for a region This is used to draw the traits for the given page region. (See Sect. 6.4.1.2 of XSL-FO spec.)
      Overrides:
        `handleRegionTraits` in class `AbstractRenderer`
      Parameters:
        `region` - the RegionViewport whose region is to be drawn

    - #### drawBackAndBorders

          protected void drawBackAndBorders(Area area,
                                            float startx,
                                            float starty,
                                            float width,
                                            float height)

      Draw the background and borders. This draws the background and border traits for an area given the position.
      Parameters:
        `area` - the area to get the traits from
        `startx` - the start x position
        `starty` - the start y position
        `width` - the width of the area
        `height` - the height of the area

    - #### drawBackAndBorders

          protected void drawBackAndBorders(Area backgroundArea,
                                            Area borderArea,
                                            float startx,
                                            float starty,
                                            float width,
                                            float height)

      Draw the background and borders. This draws the background and border traits for an area given the position.
      Parameters:
        `backgroundArea` - the area to get the background traits from
        `borderArea` - the area to get the border traits from
        `startx` - the start x position
        `starty` - the start y position
        `width` - the width of the area
        `height` - the height of the area

    - #### drawBackground

          protected void drawBackground(float startx,
                                        float starty,
                                        float width,
                                        float height,
                                        Trait.Background back,
                                        BorderProps bpsBefore,
                                        BorderProps bpsAfter,
                                        BorderProps bpsStart,
                                        BorderProps bpsEnd,
                                        int level)

      Draw the background. This draws the background given the position and the traits.
      Parameters:
        `startx` - the start x position
        `starty` - the start y position
        `width` - the width of the area
        `height` - the height of the area
        `back` - the background traits
        `bpsBefore` - the border-before traits
        `bpsAfter` - the border-after traits
        `bpsStart` - the border-start traits
        `bpsEnd` - the border-end traits
        `level` - of bidirectional embedding

    - #### drawBackground

          protected void drawBackground(float startx,
                                        float starty,
                                        float width,
                                        float height,
                                        Trait.Background back,
                                        BorderProps bpsTop,
                                        BorderProps bpsBottom,
                                        BorderProps bpsLeft,
                                        BorderProps bpsRight)

      Draw the background. This draws the background given the position and the traits.
      Parameters:
        `startx` - the start x position
        `starty` - the start y position
        `width` - the width of the area
        `height` - the height of the area
        `back` - the background traits
        `bpsTop` - the border specification on the top edge
        `bpsBottom` - the border traits associated with bottom edge
        `bpsLeft` - the border specification on the left edge
        `bpsRight` - the border specification on the right edge

    - #### clipBackground

          protected void clipBackground(float startx,
                                        float starty,
                                        float width,
                                        float height,
                                        BorderProps bpsBefore,
                                        BorderProps bpsAfter,
                                        BorderProps bpsStart,
                                        BorderProps bpsEnd)

      TODO represent border related parameters in a class Clip the background to the inner border. This draws the border traits given the position and the traits.
      Parameters:
        `startx` - the start x position
        `starty` - the start y position
        `width` - the width of the area
        `height` - the height of the area
        `bpsBefore` - the border-before traits
        `bpsAfter` - the border-after traits
        `bpsStart` - the border-start traits
        `bpsEnd` - the border-end traits

    - #### drawBorders

          protected void drawBorders(float startx,
                                     float starty,
                                     float width,
                                     float height,
                                     BorderProps bpsBefore,
                                     BorderProps bpsAfter,
                                     BorderProps bpsStart,
                                     BorderProps bpsEnd,
                                     int level,
                                     java.awt.Color innerBackgroundColor)

      Draw the borders. This draws the border traits given the position and the traits.
      Parameters:
        `startx` - the start x position
        `starty` - the start y position
        `width` - the width of the area
        `height` - the height of the area
        `bpsBefore` - the border traits associated with before edge
        `bpsAfter` - the border traits associated with after edge
        `bpsStart` - the border traits associated with start edge
        `bpsEnd` - the border traits associated with end edge
        `level` - of bidirectional embedding
        `innerBackgroundColor` - the background color of the block

    - #### drawBorders

          protected void drawBorders(java.awt.geom.Rectangle2D.Float borderRect,
                                     BorderProps bpsTop,
                                     BorderProps bpsBottom,
                                     BorderProps bpsLeft,
                                     BorderProps bpsRight,
                                     java.awt.Color innerBackgroundColor)

      Draws borders.
      Parameters:
        `borderRect` - the border rectangle
        `bpsTop` - the border specification on the top edge
        `bpsBottom` - the border traits associated with bottom edge
        `bpsLeft` - the border specification on the left edge
        `bpsRight` - the border specification on the right edge
        `innerBackgroundColor` - the background color of the block

    - #### renderInlineAreaBackAndBorders

          protected void renderInlineAreaBackAndBorders(InlineArea area)

      Common method to render the background and borders for any inline area. The all borders and padding are drawn outside the specified area.
      Specified by:
        `renderInlineAreaBackAndBorders` in class `AbstractRenderer`
      Parameters:
        `area` - the inline area for which the background, border and padding is to be rendered

    - #### renderBlockViewport

          protected void renderBlockViewport(BlockViewport bv,
                                             java.util.List children)

      Renders a block viewport.
      Overrides:
        `renderBlockViewport` in class `AbstractRenderer`
      Parameters:
        `bv` - The block viewport
        `children` - The children to render within the block viewport

    - #### renderReferenceArea

          protected void renderReferenceArea(Block block)

      Renders a block area that represents a reference area. The reference area establishes a new coordinate system.
      Specified by:
        `renderReferenceArea` in class `AbstractRenderer`
      Parameters:
        `block` - the block area

    - #### renderFlow

          protected void renderFlow(NormalFlow flow)

      Renders a flow reference area.
      Overrides:
        `renderFlow` in class `AbstractRenderer`
      Parameters:
        `flow` - The flow reference area

    - #### concatenateTransformationMatrix

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

      Concatenates the current transformation matrix with the given one, therefore establishing a new coordinate system.
      Parameters:
        `at` - the transformation matrix to process (coordinates in points)

    - #### renderInlineViewport

          public void renderInlineViewport(InlineViewport viewport)

      Render an inline viewport. This renders an inline viewport by clipping if necessary.
      Overrides:
        `renderInlineViewport` in class `AbstractRenderer`
      Parameters:
        `viewport` - the viewport to handle

    - #### restoreStateStackAfterBreakOut

          protected abstract void restoreStateStackAfterBreakOut(java.util.List breakOutList)

      Restores the state stack after a break out.
      Parameters:
        `breakOutList` - the state stack to restore.

    - #### breakOutOfStateStack

          protected abstract java.util.List breakOutOfStateStack()

      Breaks out of the state stack to handle fixed block-containers.
      Returns:
        the saved state stack to recreate later

    - #### saveGraphicsState

          protected abstract void saveGraphicsState()

      Saves the graphics state of the rendering engine.

    - #### restoreGraphicsState

          protected abstract void restoreGraphicsState()

      Restores the last graphics state of the rendering engine.

    - #### beginTextObject

          protected abstract void beginTextObject()

      Indicates the beginning of a text object.

    - #### endTextObject

          protected abstract void endTextObject()

      Indicates the end of a text object.

    - #### renderTextDecoration

          protected void renderTextDecoration(FontMetrics fm,
                                              int fontsize,
                                              InlineArea inline,
                                              int baseline,
                                              int startx)

      Paints the text decoration marks.
      Parameters:
        `fm` - Current typeface
        `fontsize` - Current font size
        `inline` - inline area to paint the marks for
        `baseline` - position of the baseline
        `startx` - start IPD

    - #### clip

          protected abstract void clip()

      Clip using the current path.

    - #### clipRect

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

      Clip using a rectangular area.
      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)

    - #### moveTo

          protected abstract void moveTo(float x,
                                         float y)

      Moves the current point to (x, y), omitting any connecting line segment.
      Parameters:
        `x` - x coordinate
        `y` - y coordinate

    - #### lineTo

          protected abstract 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).
      Parameters:
        `x` - x coordinate
        `y` - y coordinate

    - #### closePath

          protected abstract void closePath()

      Closes the current subpath by appending a straight line segment from the current point to the starting point of the subpath.

    - #### fillRect

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

      Fill a rectangular area.
      Parameters:
        `x` - the x coordinate
        `y` - the y coordinate
        `width` - the width of the rectangle
        `height` - the height of the rectangle

    - #### updateColor

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

      Establishes a new foreground or fill color.
      Parameters:
        `col` - the color to apply (null skips this operation)
        `fill` - true to set the fill color, false for the foreground color

    - #### drawImage

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

      Draw an image at the indicated location.
      Parameters:
        `url` - the URI/URL of the image
        `pos` - the position of the image
        `foreignAttributes` - an optional Map with foreign attributes, may be null

    - #### drawImage

          protected final void drawImage(java.lang.String url,
                                         java.awt.geom.Rectangle2D pos)

      Draw an image at the indicated location.
      Parameters:
        `url` - the URI/URL of the image
        `pos` - the position of the image

    - #### drawBorderLine

          protected abstract 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.
      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

    - #### renderForeignObject

          public void renderForeignObject(ForeignObject fo,
                                          java.awt.geom.Rectangle2D pos)

      Renders a foreign object area.
      Overrides:
        `renderForeignObject` in class `AbstractRenderer`
      Parameters:
        `fo` - The foreign object area
        `pos` - The target position of the foreign object (todo) Make renderForeignObject() protected

    - #### establishTransformationMatrix

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

      Establishes a new coordinate system with the given transformation matrix. The current graphics state is saved and the new coordinate system is concatenated.
      Parameters:
        `at` - the transformation matrix

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