IFRenderer (Apache FOP Core 2.11 API)
Date: 2025-04-24

org.apache.fop.render.intermediate

## Class IFRenderer

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

- All Implemented Interfaces:
    Constants, Renderer

      public class IFRenderer
      extends AbstractPathOrientedRenderer

  This renderer implementation is an adapter to the `IFPainter` interface. It is used to generate content using FOP's intermediate format.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `IF_MIME_TYPE` XML MIME type
    `protected static org.apache.commons.logging.Log` | `log` logging instance
    `protected Renderer` | `mimic` If not null, the XMLRenderer will mimic another renderer by using its font setup.
    `protected Map` | `pageIndices` Maps unique PageViewport key to page indices (for link target handling)

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

      `FOX_TRANSFORM`

    - ### 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, 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
    `IFRenderer(FOUserAgent userAgent)` Main constructor

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `beginTextObject()` Indicates the beginning of a text object.
    `protected List` | `breakOutOfStateStack()` Breaks out of the state stack to handle fixed block-containers.
    `protected 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 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(AffineTransform at)` Concatenates the current transformation matrix with the given one, therefore establishing a new coordinate system.
    `protected IFDocumentHandler` | `createDefaultDocumentHandler()` Creates a default `IFDocumentHandler` when none has been set.
    `protected void` | `drawBackground(float startx, float starty, float width, float height, Trait.Background back, BorderProps bpsBefore, BorderProps bpsAfter, BorderProps bpsStart, BorderProps bpsEnd)` Draw the background.
    `protected void` | `drawBorderLine(float x1, float y1, float x2, float y2, boolean horz, boolean startOrBefore, int style, 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, Color innerBackgroundColor)` Draw the borders.
    `protected void` | `drawImage(String uri, Rectangle2D pos, Map foreignAttributes)` Draw an image at the indicated location.
    `protected void` | `endLayer()` Finish current optional content group layer.
    `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 IFDocumentNavigationHandler` | `getDocumentNavigationHandler()` Returns the document navigation handler if available/supported.
    `String` | `getMimeType()` Get the MIME type of the renderer.
    `protected boolean` | `hasDocumentNavigation()` Indicates whether document navigation features are supported by the document handler.
    `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.
    `void` | `preparePage(PageViewport page)` This is called if the renderer supports out of order rendering.
    `void` | `processOffDocumentItem(OffDocumentItem odi)` Tells the renderer to process an item not explicitly placed on the document (e.g., PDF bookmarks).
    `protected void` | `renderBlock(Block block)` Renders a block area.
    `protected void` | `renderBlockViewport(BlockViewport bv, List children)` Renders a block viewport.
    `protected void` | `renderBookmarkTree(BookmarkData bookmarks)` Renders a Bookmark-Tree object
    `void` | `renderForeignObject(ForeignObject fo, Rectangle2D pos)` Renders a foreign object area.
    `void` | `renderImage(Image image, Rectangle2D pos)` Renders an image area.
    `protected void` | `renderInlineArea(InlineArea inlineArea)` Render the given InlineArea.
    `void` | `renderInlineParent(InlineParent ip)` Render the given InlineParent.
    `void` | `renderInlineViewport(InlineViewport viewport)` Render an inline viewport.
    `void` | `renderLeader(Leader area)` Render the given Leader.
    `void` | `renderPage(PageViewport page)` Tells the renderer to render a particular page.
    `protected void` | `renderRegionViewport(RegionViewport viewport)` Renders a region viewport.
    `protected void` | `renderSpace(SpaceArea space)` Render the given SpaceArea.
    `protected void` | `renderText(TextArea text)` Render the given TextArea.
    `protected void` | `renderWord(WordArea word)` Render the given WordArea.
    `protected void` | `restoreGraphicsState()` Restores the last graphics state of the rendering engine.
    `protected void` | `restoreStateStackAfterBreakOut(List breakOutList)` Restores the state stack after a break out.
    `protected void` | `saveGraphicsState()` Saves the graphics state of the rendering engine.
    `void` | `setDocumentHandler(IFDocumentHandler documentHandler)` Sets the `IFDocumentHandler` to be used by the `IFRenderer`.
    `void` | `setDocumentLocale(Locale locale)`
    `void` | `setupFontInfo(FontInfo inFontInfo)` Set up the given FontInfo.
    `protected void` | `startLayer(String layer)` Establish new optional content group layer.
    `void` | `startPageSequence(PageSequence pageSequence)` Tells the renderer that a new page sequence starts.
    `void` | `startRenderer(OutputStream outputStream)` Initiates the rendering phase.
    `protected void` | `startVParea(CTM ctm, Rectangle clippingRect)` Establishes a new viewport area.
    `void` | `stopRenderer()` Signals the end of the rendering phase.
    `boolean` | `supportsOutOfOrder()` Check if this renderer supports out of order rendering.
    `protected void` | `updateColor(Color col, boolean fill)` Establishes a new foreground or fill color.

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

      `drawBackAndBorders, drawBackAndBorders, drawBackground, drawBorders, drawImage, establishTransformationMatrix, handleBlockTraits, handleRegionTraits, renderFlow, renderInlineAreaBackAndBorders, renderReferenceArea, renderTextDecoration`

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

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

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

      `convertTitleToString, drawChangeBars, getBeginOffset, getCurrentPageViewport, getGraphics2DAdapter, getImageAdapter, getUserAgent, maybeEndLayer, maybeStartLayer, mptToPt, ptToMpt, renderBeforeFloat, renderBlocks, renderBodyRegion, renderContainer, renderFootnote, renderInlineBlock, renderInlineBlockParent, renderInlineSpace, renderLineArea, renderMainReference, renderPageAreas, renderRegion, renderXML, setBeginOffset, startPageSequence`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### log

          protected static final org.apache.commons.logging.Log log

      logging instance

    - #### IF_MIME_TYPE

          public static final String IF_MIME_TYPE

      XML MIME type
      See Also:
        Constant Field Values

    - #### mimic

          protected Renderer mimic

      If not null, the XMLRenderer will mimic another renderer by using its font setup.

    - #### pageIndices

          protected Map pageIndices

      Maps unique PageViewport key to page indices (for link target handling)

  - ### Constructor Detail

    - #### IFRenderer

          public IFRenderer(FOUserAgent userAgent)

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

  - ### Method Detail

    - #### getMimeType

          public String getMimeType()

      Get the MIME type of the renderer.
      Returns:
        The MIME type of the renderer, may return null if not applicable.

    - #### setDocumentHandler

          public void setDocumentHandler(IFDocumentHandler documentHandler)

      Sets the `IFDocumentHandler` to be used by the `IFRenderer`.
      Parameters:
        `documentHandler` - the `IFDocumentHandler`

    - #### setupFontInfo

          public void setupFontInfo(FontInfo inFontInfo)
                             throws FOPException

      Set up the given FontInfo.
      Specified by:
        `setupFontInfo` in interface `Renderer`
      Overrides:
        `setupFontInfo` in class `PrintRenderer`
      Parameters:
        `inFontInfo` - The font information
      Throws:
        `FOPException` - if an error occurs while setting up the font info object

    - #### supportsOutOfOrder

          public boolean supportsOutOfOrder()

      Check if this renderer supports out of order rendering. If this renderer supports out of order rendering then it means that the pages that are not ready will be prepared and a future page will be rendered.
      Specified by:
        `supportsOutOfOrder` in interface `Renderer`
      Overrides:
        `supportsOutOfOrder` in class `AbstractRenderer`
      Returns:
        True if the renderer supports out of order rendering

    - #### getDocumentNavigationHandler

          protected IFDocumentNavigationHandler getDocumentNavigationHandler()

      Returns the document navigation handler if available/supported.
      Returns:
        the document navigation handler or null if not supported

    - #### hasDocumentNavigation

          protected boolean hasDocumentNavigation()

      Indicates whether document navigation features are supported by the document handler.
      Returns:
        true if document navigation features are available

    - #### createDefaultDocumentHandler

          protected IFDocumentHandler createDefaultDocumentHandler()

      Creates a default `IFDocumentHandler` when none has been set.
      Returns:
        the default IFDocumentHandler

    - #### startRenderer

          public void startRenderer(OutputStream outputStream)
                             throws 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:
        `outputStream` - The OutputStream to use for output
      Throws:
        `IOException` - If an I/O error occurs

    - #### stopRenderer

          public void stopRenderer()
                            throws 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:
        `IOException` - If an I/O error occurs

    - #### setDocumentLocale

          public void setDocumentLocale(Locale locale)

      Description copied from class: `AbstractRenderer`
      Specified by:
        `setDocumentLocale` in interface `Renderer`
      Overrides:
        `setDocumentLocale` in class `AbstractRenderer`
      Parameters:
        `locale` - Locale of the language

    - #### processOffDocumentItem

          public void processOffDocumentItem(OffDocumentItem odi)

      Tells the renderer to process an item not explicitly placed on the document (e.g., PDF bookmarks). Note - not all renderers will process all off-document items.
      Specified by:
        `processOffDocumentItem` in interface `Renderer`
      Overrides:
        `processOffDocumentItem` in class `AbstractRenderer`
      Parameters:
        `odi` - The off-document item to be rendered

    - #### renderBookmarkTree

          protected void renderBookmarkTree(BookmarkData bookmarks)

      Renders a Bookmark-Tree object
      Parameters:
        `bookmarks` - the BookmarkData object containing all the Bookmark-Items

    - #### startPageSequence

          public void startPageSequence(PageSequence pageSequence)

      Tells the renderer that a new page sequence starts.
      Specified by:
        `startPageSequence` in interface `Renderer`
      Overrides:
        `startPageSequence` in class `AbstractRenderer`
      Parameters:
        `pageSequence` - the page sequence

    - #### preparePage

          public void preparePage(PageViewport page)

      This is called if the renderer supports out of order rendering. The renderer should prepare the page so that a page further on in the set of pages can be rendered. The body of the page should not be rendered. The page will be rendered at a later time by the call to `Renderer.renderPage(PageViewport)`.
      Specified by:
        `preparePage` in interface `Renderer`
      Overrides:
        `preparePage` in class `AbstractRenderer`
      Parameters:
        `page` - The page viewport to use

    - #### renderPage

          public void renderPage(PageViewport page)
                          throws IOException,
                                 FOPException

      Tells the renderer to render a particular page. A renderer typically responds by packing up the current page and writing it immediately to the output device.
      Specified by:
        `renderPage` in interface `Renderer`
      Overrides:
        `renderPage` in class `AbstractRenderer`
      Parameters:
        `page` - The page to be rendered
      Throws:
        `IOException` - if an I/O error occurs
        `FOPException` - if a FOP interal error occurs.

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

    - #### breakOutOfStateStack

          protected 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(List breakOutList)

      Restores the state stack after a break out.
      Specified by:
        `restoreStateStackAfterBreakOut` in class `AbstractPathOrientedRenderer`
      Parameters:
        `breakOutList` - the state stack to restore.

    - #### concatenateTransformationMatrix

          protected void concatenateTransformationMatrix(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)

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

    - #### renderRegionViewport

          protected void renderRegionViewport(RegionViewport viewport)

      Renders a region viewport.

      The region may clip the area and it establishes a position from where the region is placed.

      Overrides:
        `renderRegionViewport` in class `AbstractRenderer`
      Parameters:
        `viewport` - The region viewport to be rendered

    - #### renderBlockViewport

          protected void renderBlockViewport(BlockViewport bv,
                                             List children)

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

    - #### renderInlineViewport

          public void renderInlineViewport(InlineViewport viewport)

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

    - #### startVParea

          protected void startVParea(CTM ctm,
                                     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`

    - #### startLayer

          protected void startLayer(String layer)

      Establish new optional content group layer.
      Specified by:
        `startLayer` in class `AbstractRenderer`
      Parameters:
        `layer` - name of layer

    - #### endLayer

          protected void endLayer()

      Finish current optional content group layer.
      Specified by:
        `endLayer` in class `AbstractRenderer`

    - #### renderInlineArea

          protected void renderInlineArea(InlineArea inlineArea)

      Render the given InlineArea.
      Overrides:
        `renderInlineArea` in class `AbstractRenderer`
      Parameters:
        `inlineArea` - inline area text to render

    - #### renderInlineParent

          public void renderInlineParent(InlineParent ip)

      Render the given InlineParent.
      Overrides:
        `renderInlineParent` in class `AbstractRenderer`
      Parameters:
        `ip` - the inline parent to render

    - #### renderBlock

          protected void renderBlock(Block block)

      Renders a block area.
      Overrides:
        `renderBlock` in class `AbstractRenderer`
      Parameters:
        `block` - The block area

    - #### renderText

          protected void renderText(TextArea text)

      Render the given TextArea.
      Overrides:
        `renderText` in class `AbstractRenderer`
      Parameters:
        `text` - the text to render

    - #### renderWord

          protected void renderWord(WordArea word)

      Render the given WordArea.
      Overrides:
        `renderWord` in class `AbstractRenderer`
      Parameters:
        `word` - the word to render

    - #### renderSpace

          protected void renderSpace(SpaceArea space)

      Render the given SpaceArea.
      Overrides:
        `renderSpace` in class `AbstractRenderer`
      Parameters:
        `space` - the space to render

    - #### renderImage

          public void renderImage(Image image,
                                  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(String uri,
                                   Rectangle2D pos,
                                   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

    - #### renderForeignObject

          public void renderForeignObject(ForeignObject fo,
                                          Rectangle2D pos)

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

    - #### renderLeader

          public void renderLeader(Leader area)

      Render the given Leader.
      Overrides:
        `renderLeader` in class `AbstractRenderer`
      Parameters:
        `area` - the leader to render

    - #### clip

          protected void clip()

      Clip using the current path.
      Specified by:
        `clip` in class `AbstractPathOrientedRenderer`

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

    - #### 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.
      Overrides:
        `clipBackground` in class `AbstractPathOrientedRenderer`
      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

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

    - #### drawBackground

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

      Draw the background. This draws the background given the position and the traits.
      Overrides:
        `drawBackground` in class `AbstractPathOrientedRenderer`
      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 specification on the top edge
        `bpsAfter` - the border traits associated with bottom edge
        `bpsStart` - the border specification on the left edge
        `bpsEnd` - the border specification on the right edge

    - #### drawBorders

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

      Draw the borders. This draws the border traits given the position and the traits.
      Overrides:
        `drawBorders` in class `AbstractPathOrientedRenderer`
      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

    - #### drawBorderLine

          protected void drawBorderLine(float x1,
                                        float y1,
                                        float x2,
                                        float y2,
                                        boolean horz,
                                        boolean startOrBefore,
                                        int style,
                                        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

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

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

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

    - #### updateColor

          protected void updateColor(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

Copyright © 2025 Apache Software Foundation. All rights reserved.