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