fop 1.0

org.apache.fop.render.intermediate
Class IFRenderer

java.lang.Object
  extended by org.apache.fop.render.AbstractRenderer
      extended by org.apache.fop.render.PrintRenderer
          extended by org.apache.fop.render.AbstractPathOrientedRenderer
              extended by org.apache.fop.render.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
static java.lang.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  java.util.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, fontResolver
 
Fields inherited from class org.apache.fop.render.AbstractRenderer
containingBPPosition, containingIPPosition, currentBPPosition, currentIPPosition, currentPageViewport, 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_CAPITALIZE, EN_CAPTION, EN_CENTER, EN_CENTRAL, EN_CHARACTER_BY_CHARACTER, EN_COLLAPSE, EN_COLLAPSE_WITH_PRECEDENCE, EN_COLUMN, EN_CONDENSED, EN_CONSIDER_SHIFTS, EN_DASHED, EN_DISCARD, EN_DISREGARD_SHIFTS, EN_DOCUMENT, EN_DOTS, EN_DOTTED, EN_DOUBLE, EN_EMBED, EN_END, EN_END_ON_EVEN, EN_END_ON_ODD, EN_ERROR_IF_OVERFLOW, EN_EVEN, EN_EVEN_PAGE, EN_EXPANDED, EN_EXTRA_CONDENSED, EN_EXTRA_EXPANDED, EN_FALSE, EN_FIC, EN_FIRST, EN_FIRST_STARTING, EN_FIXED, EN_FONT_HEIGHT, EN_FORCE, EN_FSWP, EN_GROOVE, EN_HANGING, EN_HIDDEN, EN_HIDE, EN_ICON, EN_IDEOGRAPHIC, EN_IGNORE, EN_IGNORE_IF_AFTER_LINEFEED, EN_IGNORE_IF_BEFORE_LINEFEED, EN_IGNORE_IF_SURROUNDING_LINEFEED, EN_INDEFINITE, EN_INDENT, EN_INHERIT, EN_INSET, EN_INSIDE, EN_INTEGER_PIXELS, EN_ITALIC, EN_JUSTIFY, EN_LARGER, EN_LAST, EN_LAST_ENDING, EN_LAST_STARTING, EN_LEAVE_SEPARATE, EN_LEFT, EN_LEWP, EN_LIGHTER, EN_LINE, EN_LINE_HEIGHT, EN_LINE_THROUGH, EN_LINK, EN_LOWERCASE, EN_LR_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_TB, EN_RTL, EN_RULE, EN_SATURATION, EN_SCALE_DOWN_TO_FIT, EN_SCALE_TO_FIT, EN_SCALE_UP_TO_FIT, EN_SCROLL, EN_SEMI_CONDENSED, EN_SEMI_EXPANDED, EN_SEPARATE, EN_SHOW, EN_SMALL_CAPS, EN_SMALL_CAPTION, EN_SMALLER, EN_SOLID, EN_SPACE, EN_START, EN_STATIC, EN_STATUS_BAR, EN_SUB, EN_SUPER, EN_SUPPRESS, EN_TABLE, EN_TABLE_FRAGMENT, EN_TB_RL, EN_TEXT_AFTER_EDGE, EN_TEXT_BEFORE_EDGE, EN_TEXT_BOTTOM, EN_TEXT_TOP, EN_TOP, EN_TRADITIONAL, EN_TREAT_AS_SPACE, EN_TREAT_AS_ZERO_WIDTH_SPACE, EN_TRUE, EN_ULTRA_CONDENSED, EN_ULTRA_EXPANDED, EN_UNBOUNDED, EN_UNDERLINE, EN_UNIFORM, EN_UPPERCASE, EN_USE_FONT_METRICS, EN_USE_SCRIPT, EN_USECONTENT, EN_VISIBLE, EN_WIDER, EN_WRAP, EN_X_DISTRIBUTE, EN_X_FILL, ENUM_COUNT, FO_BASIC_LINK, FO_BIDI_OVERRIDE, FO_BLOCK, FO_BLOCK_CONTAINER, FO_BOOKMARK, FO_BOOKMARK_TITLE, FO_BOOKMARK_TREE, FO_CHANGE_BAR_BEGIN, FO_CHANGE_BAR_END, FO_CHARACTER, FO_COLOR_PROFILE, FO_CONDITIONAL_PAGE_MASTER_REFERENCE, FO_DECLARATIONS, FO_EXTERNAL_GRAPHIC, FO_FLOAT, FO_FLOW, FO_FLOW_ASSIGNMENT, FO_FLOW_MAP, FO_FLOW_NAME_SPECIFIER, FO_FLOW_SOURCE_LIST, FO_FLOW_TARGET_LIST, FO_FOLIO_PREFIX, FO_FOLIO_SUFFIX, FO_FOOTNOTE, FO_FOOTNOTE_BODY, FO_INDEX_KEY_REFERENCE, FO_INDEX_PAGE_CITATION_LIST, FO_INDEX_PAGE_CITATION_LIST_SEPARATOR, FO_INDEX_PAGE_CITATION_RANGE_SEPARATOR, FO_INDEX_PAGE_NUMBER_PREFIX, FO_INDEX_PAGE_NUMBER_SUFFIX, FO_INDEX_RANGE_BEGIN, FO_INDEX_RANGE_END, FO_INITIAL_PROPERTY_SET, FO_INLINE, FO_INLINE_CONTAINER, FO_INSTREAM_FOREIGN_OBJECT, FO_LAYOUT_MASTER_SET, FO_LEADER, FO_LIST_BLOCK, FO_LIST_ITEM, FO_LIST_ITEM_BODY, FO_LIST_ITEM_LABEL, FO_MARKER, FO_MULTI_CASE, FO_MULTI_PROPERTIES, FO_MULTI_PROPERTY_SET, FO_MULTI_SWITCH, FO_MULTI_TOGGLE, FO_PAGE_NUMBER, FO_PAGE_NUMBER_CITATION, FO_PAGE_NUMBER_CITATION_LAST, FO_PAGE_SEQUENCE, FO_PAGE_SEQUENCE_MASTER, FO_PAGE_SEQUENCE_WRAPPER, FO_REGION_AFTER, FO_REGION_BEFORE, FO_REGION_BODY, FO_REGION_END, FO_REGION_NAME_SPECIFIER, FO_REGION_START, FO_REPEATABLE_PAGE_MASTER_ALTERNATIVES, FO_REPEATABLE_PAGE_MASTER_REFERENCE, FO_RETRIEVE_MARKER, FO_RETRIEVE_TABLE_MARKER, FO_ROOT, FO_SCALING_VALUE_CITATION, FO_SIMPLE_PAGE_MASTER, FO_SINGLE_PAGE_MASTER_REFERENCE, FO_STATIC_CONTENT, FO_TABLE, FO_TABLE_AND_CAPTION, FO_TABLE_BODY, FO_TABLE_CAPTION, FO_TABLE_CELL, FO_TABLE_COLUMN, FO_TABLE_FOOTER, FO_TABLE_HEADER, FO_TABLE_ROW, FO_TITLE, FO_UNKNOWN_NODE, FO_WRAPPER, FRM_OBJ_COUNT, NOT_SET, PR_ABSOLUTE_POSITION, PR_ACTIVE_STATE, PR_ALIGNMENT_ADJUST, PR_ALIGNMENT_BASELINE, PR_AUTO_RESTORE, PR_AZIMUTH, PR_BACKGROUND, PR_BACKGROUND_ATTACHMENT, PR_BACKGROUND_COLOR, PR_BACKGROUND_IMAGE, PR_BACKGROUND_POSITION, PR_BACKGROUND_POSITION_HORIZONTAL, PR_BACKGROUND_POSITION_VERTICAL, PR_BACKGROUND_REPEAT, PR_BASELINE_SHIFT, PR_BLANK_OR_NOT_BLANK, PR_BLOCK_PROGRESSION_DIMENSION, PR_BORDER, PR_BORDER_AFTER_COLOR, PR_BORDER_AFTER_PRECEDENCE, PR_BORDER_AFTER_STYLE, PR_BORDER_AFTER_WIDTH, PR_BORDER_BEFORE_COLOR, PR_BORDER_BEFORE_PRECEDENCE, PR_BORDER_BEFORE_STYLE, PR_BORDER_BEFORE_WIDTH, PR_BORDER_BOTTOM, PR_BORDER_BOTTOM_COLOR, PR_BORDER_BOTTOM_STYLE, PR_BORDER_BOTTOM_WIDTH, PR_BORDER_COLLAPSE, PR_BORDER_COLOR, PR_BORDER_END_COLOR, PR_BORDER_END_PRECEDENCE, PR_BORDER_END_STYLE, PR_BORDER_END_WIDTH, PR_BORDER_LEFT, PR_BORDER_LEFT_COLOR, PR_BORDER_LEFT_STYLE, PR_BORDER_LEFT_WIDTH, PR_BORDER_RIGHT, PR_BORDER_RIGHT_COLOR, PR_BORDER_RIGHT_STYLE, PR_BORDER_RIGHT_WIDTH, PR_BORDER_SEPARATION, PR_BORDER_SPACING, PR_BORDER_START_COLOR, PR_BORDER_START_PRECEDENCE, PR_BORDER_START_STYLE, PR_BORDER_START_WIDTH, PR_BORDER_STYLE, PR_BORDER_TOP, PR_BORDER_TOP_COLOR, PR_BORDER_TOP_STYLE, PR_BORDER_TOP_WIDTH, PR_BORDER_WIDTH, PR_BOTTOM, PR_BREAK_AFTER, PR_BREAK_BEFORE, PR_CAPTION_SIDE, PR_CASE_NAME, PR_CASE_TITLE, PR_CHANGE_BAR_CLASS, PR_CHANGE_BAR_COLOR, PR_CHANGE_BAR_OFFSET, PR_CHANGE_BAR_PLACEMENT, PR_CHANGE_BAR_STYLE, PR_CHANGE_BAR_WIDTH, PR_CHARACTER, PR_CLEAR, PR_CLIP, PR_COLOR, PR_COLOR_PROFILE_NAME, PR_COLUMN_COUNT, PR_COLUMN_GAP, PR_COLUMN_NUMBER, PR_COLUMN_WIDTH, PR_CONTENT_HEIGHT, PR_CONTENT_TYPE, PR_CONTENT_WIDTH, PR_COUNTRY, PR_CUE, PR_CUE_AFTER, PR_CUE_BEFORE, PR_DESTINATION_PLACEMENT_OFFSET, PR_DIRECTION, PR_DISPLAY_ALIGN, PR_DOMINANT_BASELINE, PR_ELEVATION, PR_EMPTY_CELLS, PR_END_INDENT, PR_ENDS_ROW, PR_EXTENT, PR_EXTERNAL_DESTINATION, PR_FLOAT, PR_FLOW_MAP_NAME, PR_FLOW_MAP_REFERENCE, PR_FLOW_NAME, PR_FLOW_NAME_REFERENCE, PR_FONT, PR_FONT_FAMILY, PR_FONT_SELECTION_STRATEGY, PR_FONT_SIZE, PR_FONT_SIZE_ADJUST, PR_FONT_STRETCH, PR_FONT_STYLE, PR_FONT_VARIANT, PR_FONT_WEIGHT, PR_FORCE_PAGE_COUNT, PR_FORMAT, PR_GLYPH_ORIENTATION_HORIZONTAL, PR_GLYPH_ORIENTATION_VERTICAL, PR_GROUPING_SEPARATOR, PR_GROUPING_SIZE, PR_HEIGHT, PR_HYPHENATE, PR_HYPHENATION_CHARACTER, PR_HYPHENATION_KEEP, PR_HYPHENATION_LADDER_COUNT, PR_HYPHENATION_PUSH_CHARACTER_COUNT, PR_HYPHENATION_REMAIN_CHARACTER_COUNT, PR_ID, PR_INDEX_CLASS, PR_INDEX_KEY, PR_INDICATE_DESTINATION, PR_INITIAL_PAGE_NUMBER, PR_INLINE_PROGRESSION_DIMENSION, PR_INTERNAL_DESTINATION, PR_INTRINSIC_SCALE_VALUE, PR_INTRUSION_DISPLACE, PR_KEEP_TOGETHER, PR_KEEP_WITH_NEXT, PR_KEEP_WITH_PREVIOUS, PR_LANGUAGE, PR_LAST_LINE_END_INDENT, PR_LEADER_ALIGNMENT, PR_LEADER_LENGTH, PR_LEADER_PATTERN, PR_LEADER_PATTERN_WIDTH, PR_LEFT, PR_LETTER_SPACING, PR_LETTER_VALUE, PR_LINE_HEIGHT, PR_LINE_HEIGHT_SHIFT_ADJUSTMENT, PR_LINE_STACKING_STRATEGY, PR_LINEFEED_TREATMENT, PR_MARGIN, PR_MARGIN_BOTTOM, PR_MARGIN_LEFT, PR_MARGIN_RIGHT, PR_MARGIN_TOP, PR_MARKER_CLASS_NAME, PR_MASTER_NAME, PR_MASTER_REFERENCE, PR_MAX_HEIGHT, PR_MAX_WIDTH, PR_MAXIMUM_REPEATS, PR_MEDIA_USAGE, PR_MERGE_PAGES_ACROSS_INDEX_KEY_REFERENCES, PR_MERGE_RANGES_ACROSS_INDEX_KEY_REFERENCES, PR_MERGE_SEQUENTIAL_PAGE_NUMBERS, PR_MIN_HEIGHT, PR_MIN_WIDTH, PR_NUMBER_COLUMNS_REPEATED, PR_NUMBER_COLUMNS_SPANNED, PR_NUMBER_ROWS_SPANNED, PR_ODD_OR_EVEN, PR_ORPHANS, PR_OVERFLOW, PR_PADDING, PR_PADDING_AFTER, PR_PADDING_BEFORE, PR_PADDING_BOTTOM, PR_PADDING_END, PR_PADDING_LEFT, PR_PADDING_RIGHT, PR_PADDING_START, PR_PADDING_TOP, PR_PAGE_BREAK_AFTER, PR_PAGE_BREAK_BEFORE, PR_PAGE_BREAK_INSIDE, PR_PAGE_CITATION_STRATEGY, PR_PAGE_HEIGHT, PR_PAGE_NUMBER_TREATMENT, PR_PAGE_POSITION, PR_PAGE_WIDTH, PR_PAUSE, PR_PAUSE_AFTER, PR_PAUSE_BEFORE, PR_PITCH, PR_PITCH_RANGE, PR_PLAY_DURING, PR_POSITION, PR_PRECEDENCE, PR_PROVISIONAL_DISTANCE_BETWEEN_STARTS, PR_PROVISIONAL_LABEL_SEPARATION, PR_REF_ID, PR_REF_INDEX_KEY, PR_REFERENCE_ORIENTATION, PR_REGION_NAME, PR_REGION_NAME_REFERENCE, PR_RELATIVE_ALIGN, PR_RELATIVE_POSITION, PR_RENDERING_INTENT, PR_RETRIEVE_BOUNDARY, PR_RETRIEVE_BOUNDARY_WITHIN_TABLE, PR_RETRIEVE_CLASS_NAME, PR_RETRIEVE_POSITION, PR_RETRIEVE_POSITION_WITHIN_TABLE, PR_RICHNESS, PR_RIGHT, PR_ROLE, PR_RULE_STYLE, PR_RULE_THICKNESS, PR_SCALING, PR_SCALING_METHOD, PR_SCORE_SPACES, PR_SCRIPT, PR_SHOW_DESTINATION, PR_SIZE, PR_SOURCE_DOCUMENT, PR_SPACE_AFTER, PR_SPACE_BEFORE, PR_SPACE_END, PR_SPACE_START, PR_SPAN, PR_SPEAK, PR_SPEAK_HEADER, PR_SPEAK_NUMERAL, PR_SPEAK_PUNCTUATION, PR_SPEECH_RATE, PR_SRC, PR_START_INDENT, PR_STARTING_STATE, PR_STARTS_ROW, PR_STRESS, PR_SUPPRESS_AT_LINE_BREAK, PR_SWITCH_TO, PR_TABLE_LAYOUT, PR_TABLE_OMIT_FOOTER_AT_BREAK, PR_TABLE_OMIT_HEADER_AT_BREAK, PR_TARGET_PRESENTATION_CONTEXT, PR_TARGET_PROCESSING_CONTEXT, PR_TARGET_STYLESHEET, PR_TEXT_ALIGN, PR_TEXT_ALIGN_LAST, PR_TEXT_ALTITUDE, PR_TEXT_DECORATION, PR_TEXT_DEPTH, PR_TEXT_INDENT, PR_TEXT_SHADOW, PR_TEXT_TRANSFORM, PR_TOP, PR_TREAT_AS_WORD_SPACE, PR_UNICODE_BIDI, PR_VERTICAL_ALIGN, PR_VISIBILITY, PR_VOICE_FAMILY, PR_VOLUME, PR_WHITE_SPACE, PR_WHITE_SPACE_COLLAPSE, PR_WHITE_SPACE_TREATMENT, PR_WIDOWS, PR_WIDTH, PR_WORD_SPACING, PR_WRAP_OPTION, PR_WRITING_MODE, PR_X_ALT_TEXT, PR_X_BLOCK_PROGRESSION_UNIT, PR_X_DISABLE_COLUMN_BALANCING, PR_X_ORPHAN_CONTENT_LIMIT, PR_X_PTR, PR_X_WIDOW_CONTENT_LIMIT, PR_XML_LANG, PR_Z_INDEX, PROPERTY_COUNT, PROPERTY_MASK
 
Constructor Summary
IFRenderer()
          Main constructor
 
Method Summary
protected  void beginTextObject()
          Indicates the beginning of a text object.
protected  java.util.List breakOutOfStateStack()
          Breaks out of the state stack to handle fixed block-containers.
protected  void clip()
          Clip using the current path.
protected  void clipRect(float x, float y, float width, float height)
          Clip using a rectangular area.
protected  void closePath()
          Closes the current subpath by appending a straight line segment from the current point to the starting point of the subpath.
protected  void concatenateTransformationMatrix(java.awt.geom.AffineTransform at)
          Concatenates the current transformation matrix with the given one, therefore establishing a new coordinate system.
protected  IFDocumentHandler createDefaultDocumentHandler()
          Creates a default IFDocumentHandler when none has been set.
protected  void drawBorderLine(float x1, float y1, float x2, float y2, boolean horz, boolean startOrBefore, int style, java.awt.Color col)
          Draw a border segment of an XSL-FO style border.
protected  void drawBorders(float startx, float starty, float width, float height, BorderProps bpsBefore, BorderProps bpsAfter, BorderProps bpsStart, BorderProps bpsEnd)
          Draw the borders.
protected  void drawImage(java.lang.String uri, java.awt.geom.Rectangle2D pos, java.util.Map foreignAttributes)
          Draw an image at the indicated location.
protected  void endTextObject()
          Indicates the end of a text object.
protected  void endVParea()
          Signals exit from a viewport area.
protected  void fillRect(float x, float y, float width, float height)
          Fill a rectangular area.
protected  IFDocumentNavigationHandler getDocumentNavigationHandler()
          Returns the document navigation handler if available/supported.
 java.lang.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, java.util.List children)
          Renders a block viewport.
protected  void renderBookmarkTree(BookmarkData bookmarks)
          Renders a Bookmark-Tree object
 void renderForeignObject(ForeignObject fo, java.awt.geom.Rectangle2D pos)
          Renders a foreign object area.
 void renderImage(Image image, java.awt.geom.Rectangle2D pos)
          Renders an image area.
protected  void renderInlineArea(InlineArea inlineArea)
          Render the given InlineArea.
 void renderInlineParent(InlineParent ip)
          Render the given InlineParent.
 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(java.lang.String s, int[] letterAdjust, Font font, AbstractTextArea parentArea)
          Does low-level rendering of text.
protected  void renderText(TextArea text)
          Render the given TextArea.
 void renderViewport(Viewport viewport)
          Render an inline viewport.
protected  void renderWord(WordArea word)
          Render the given WordArea.
protected  void restoreGraphicsState()
          Restores the last graphics state of the rendering engine.
protected  void restoreStateStackAfterBreakOut(java.util.List breakOutList)
          Restores the state stack after a break out.
protected  void saveGraphicsState()
          Saves the graphics state of the rendering engine.
 void setDocumentHandler(IFDocumentHandler documentHandler)
          Sets the IFDocumentHandler to be used by the IFRenderer.
 void setupFontInfo(FontInfo inFontInfo)
          Set up the given FontInfo.
 void startPageSequence(PageSequence pageSequence)
          Tells the renderer that a new page sequence starts.
 void startRenderer(java.io.OutputStream outputStream)
          Initiates the rendering phase.
protected  void startVParea(CTM ctm, java.awt.geom.Rectangle2D clippingRect)
          Establishes a new viewport area.
 void stopRenderer()
          Signals the end of the rendering phase.
 boolean supportsOutOfOrder()
          Check if this renderer supports out of order rendering.
protected  void updateColor(java.awt.Color col, boolean fill)
          Establishes a new foreground or fill color.
 
Methods inherited from class org.apache.fop.render.AbstractPathOrientedRenderer
drawBackAndBorders, drawBackAndBorders, drawBackground, drawBorders, drawImage, establishTransformationMatrix, handleBlockTraits, handleRegionTraits, renderFlow, renderInlineAreaBackAndBorders, renderReferenceArea, renderTextDecoration
 
Methods inherited from class org.apache.fop.render.PrintRenderer
addFontList, createRendererContext, getFontFromArea, getFontInfo, getFontList, getFontResolver, getInternalFontNameForArea, instantiateRendererContext, renderDocument, setFontList
 
Methods inherited from class org.apache.fop.render.AbstractRenderer
convertTitleToString, getCurrentPageViewport, getGraphics2DAdapter, getImageAdapter, getUserAgent, mptToPt, ptToMpt, renderBeforeFloat, renderBlocks, renderBodyRegion, renderContainer, renderFootnote, renderInlineBlockParent, renderInlineSpace, renderLineArea, renderMainReference, renderPageAreas, renderRegion, renderXML, setUserAgent, startPageSequence
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

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


IF_MIME_TYPE

public static final java.lang.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 java.util.Map pageIndices
Maps unique PageViewport key to page indices (for link target handling)

Constructor Detail

IFRenderer

public IFRenderer()
Main constructor

Method Detail

getMimeType

public java.lang.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(java.io.OutputStream outputStream)
                   throws java.io.IOException
Initiates the rendering phase. This must only be called once for a rendering. If stopRenderer is called then this may be called again for a new document rendering.

Specified by:
startRenderer in interface Renderer
Overrides:
startRenderer in class AbstractRenderer
Parameters:
outputStream - The OutputStream to use for output
Throws:
java.io.IOException - If an I/O error occurs

stopRenderer

public void stopRenderer()
                  throws java.io.IOException
Signals the end of the rendering phase. The renderer should reset to an initial state and dispose of any resources for the completed rendering.

Specified by:
stopRenderer in interface Renderer
Overrides:
stopRenderer in class AbstractRenderer
Throws:
java.io.IOException - If an I/O error occurs

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 java.io.IOException,
                       FOPException
Tells the renderer to render a particular page. A renderer typically reponds 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:
java.io.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 java.util.List breakOutOfStateStack()
Breaks out of the state stack to handle fixed block-containers.

Specified by:
breakOutOfStateStack in class AbstractPathOrientedRenderer
Returns:
the saved state stack to recreate later

restoreStateStackAfterBreakOut

protected void restoreStateStackAfterBreakOut(java.util.List breakOutList)
Restores the state stack after a break out.

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

concatenateTransformationMatrix

protected void concatenateTransformationMatrix(java.awt.geom.AffineTransform at)
Concatenates the current transformation matrix with the given one, therefore establishing a new coordinate system.

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

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,
                                   java.util.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

renderViewport

public void renderViewport(Viewport viewport)
Render an inline viewport. This renders an inline viewport by clipping if necessary.

Overrides:
renderViewport in class AbstractPathOrientedRenderer
Parameters:
viewport - the viewport to handle

startVParea

protected void startVParea(CTM ctm,
                           java.awt.geom.Rectangle2D 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

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

renderText

protected void renderText(java.lang.String s,
                          int[] letterAdjust,
                          Font font,
                          AbstractTextArea parentArea)
Does low-level rendering of text.

Parameters:
s - text to render
letterAdjust - an array of widths for letter adjustment (may be null)
font - to font in use
parentArea - the parent text area to retrieve certain traits from

renderImage

public void renderImage(Image image,
                        java.awt.geom.Rectangle2D pos)
Renders an image area.

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

drawImage

protected void drawImage(java.lang.String uri,
                         java.awt.geom.Rectangle2D pos,
                         java.util.Map foreignAttributes)
Draw an image at the indicated location.

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

renderForeignObject

public void renderForeignObject(ForeignObject fo,
                                java.awt.geom.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)

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

drawBorders

protected void drawBorders(float startx,
                           float starty,
                           float width,
                           float height,
                           BorderProps bpsBefore,
                           BorderProps bpsAfter,
                           BorderProps bpsStart,
                           BorderProps bpsEnd)
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-before traits
bpsAfter - the border-after traits
bpsStart - the border-start traits
bpsEnd - the border-end traits

drawBorderLine

protected void drawBorderLine(float x1,
                              float y1,
                              float x2,
                              float y2,
                              boolean horz,
                              boolean startOrBefore,
                              int style,
                              java.awt.Color col)
Draw a border segment of an XSL-FO style border.

Specified by:
drawBorderLine in class AbstractPathOrientedRenderer
Parameters:
x1 - starting x coordinate
y1 - starting y coordinate
x2 - ending x coordinate
y2 - ending y coordinate
horz - true for horizontal border segments, false for vertical border segments
startOrBefore - true for border segments on the start or before edge, false for end or after.
style - the border style (one of Constants.EN_DASHED etc.)
col - the color for the border segment

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(java.awt.Color col,
                           boolean fill)
Establishes a new foreground or fill color.

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

fop 1.0

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