org.apache.fop.render.afp

Class AFPRenderer

Implemented Interfaces:
Constants, Renderer

public class AFPRenderer
extends AbstractPathOrientedRenderer

This is an implementation of a FOP Renderer that renders areas to AFP.

A renderer is primarily designed to convert a given area tree into the output document format. It should be able to produce pages and fill the pages with the text and graphical content. Usually the output is sent to an output stream. Some output formats may support extra information that is not available from the area tree or depends on the destination of the document. Each renderer is given an area tree to render to its output format. The area tree is simply a representation of the pages and the placement of text and graphical objects on those pages.

The renderer will be given each page as it is ready and an output stream to write the data out. All pages are supplied in the order they appear in the document. In order to save memory it is possible to render the pages out of order. Any page that is not ready to be rendered is setup by the renderer first so that it can reserve a space or reference for when the page is ready to be rendered.The renderer is responsible for managing the output format and associated data and flow.

Each renderer is totally responsible for its output format. Because font metrics (and therefore layout) are obtained in two different ways depending on the renderer, the renderer actually sets up the fonts being used. The font metrics are used during the layout process to determine the size of characters.

The render context is used by handlers. It contains information about the current state of the renderer, such as the page, the position, and any other miscellaneous objects that are required to draw into the page.

A renderer is created by implementing the Renderer interface. However, the AbstractRenderer does most of what is needed, including iterating through the tree parts, so it is this that is extended. This means that this object only need to implement the basic functionality such as text, images, and lines. AbstractRenderer's methods can easily be overridden to handle things in a different way or do some extra processing.

The relevant AreaTree structures that will need to be rendered are Page, Viewport, Region, Span, Block, Line, Inline. A renderer implementation renders each individual page, clips and aligns child areas to a viewport, handle all types of inline area, text, image etc and draws various lines and rectangles. Note: There are specific extensions that have been added to the FO. They are specific to their location within the FO and have to be processed accordingly (ie. at the start or end of the page).

Field Summary

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

fontInfo, fontList, fontResolver

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

containingBPPosition, containingIPPosition, currentBPPosition, currentIPPosition, currentPageViewport, log, userAgent

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, ENUM_COUNT, 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_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_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_LEFT, EN_LEWP, EN_LIGHTER, EN_LINE, EN_LINE_HEIGHT, EN_LINE_THROUGH, EN_LOWERCASE, EN_LR_TB, EN_LSWP, EN_LTR, EN_MATHEMATICAL, EN_MAX_HEIGHT, EN_MENU, EN_MESSAGE_BOX, EN_MIDDLE, EN_NARROWER, EN_NONE, EN_NON_UNIFORM, EN_NOREPEAT, EN_NORMAL, EN_NOT_BLANK, EN_NO_BLINK, EN_NO_CHANGE, EN_NO_FORCE, EN_NO_LIMIT, EN_NO_LINE_THROUGH, EN_NO_OVERLINE, EN_NO_UNDERLINE, EN_NO_WRAP, 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_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_SMALLER, EN_SMALL_CAPS, EN_SMALL_CAPTION, EN_SOLID, EN_SPACE, EN_START, EN_STATIC, EN_STATUS_BAR, EN_SUB, EN_SUPER, EN_SUPPRESS, 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_USECONTENT, EN_USE_FONT_METRICS, EN_USE_SCRIPT, EN_VISIBLE, EN_WIDER, EN_WRAP, EN_X_DISTRIBUTE, EN_X_FILL, FO_BASIC_LINK, FO_BIDI_OVERRIDE, FO_BLOCK, FO_BLOCK_CONTAINER, FO_BOOKMARK, FO_BOOKMARK_TITLE, FO_BOOKMARK_TREE, FO_CHARACTER, FO_COLOR_PROFILE, FO_CONDITIONAL_PAGE_MASTER_REFERENCE, FO_DECLARATIONS, FO_EXTERNAL_GRAPHIC, FO_FLOAT, FO_FLOW, FO_FOOTNOTE, FO_FOOTNOTE_BODY, 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_START, FO_REPEATABLE_PAGE_MASTER_ALTERNATIVES, FO_REPEATABLE_PAGE_MASTER_REFERENCE, FO_RETRIEVE_MARKER, FO_ROOT, 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, PROPERTY_COUNT, PROPERTY_MASK, 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_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_ENDS_ROW, PR_END_INDENT, PR_EXTENT, PR_EXTERNAL_DESTINATION, PR_FLOAT, PR_FLOW_NAME, 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_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_LINEFEED_TREATMENT, PR_LINE_HEIGHT, PR_LINE_HEIGHT_SHIFT_ADJUSTMENT, PR_LINE_STACKING_STRATEGY, 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_MAXIMUM_REPEATS, PR_MAX_HEIGHT, PR_MAX_WIDTH, PR_MEDIA_USAGE, 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_HEIGHT, 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_REFERENCE_ORIENTATION, PR_REF_ID, PR_REGION_NAME, PR_RELATIVE_ALIGN, PR_RELATIVE_POSITION, PR_RENDERING_INTENT, PR_RETRIEVE_BOUNDARY, PR_RETRIEVE_CLASS_NAME, PR_RETRIEVE_POSITION, 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_STARTING_STATE, PR_STARTS_ROW, PR_START_INDENT, 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_XML_LANG, PR_X_BLOCK_PROGRESSION_UNIT, PR_X_ORPHAN_CONTENT_LIMIT, PR_X_WIDOW_CONTENT_LIMIT, PR_Z_INDEX

Fields inherited from interface org.apache.fop.render.Renderer

ROLE

Constructor Summary

AFPRenderer()
Constructor for AFPRenderer.

Method Summary

void
beginTextObject()
Indicates the beginning of a text object.
List
breakOutOfStateStack()
void
clip()
void
clipRect(float x, float y, float width, float height)
void
closePath()
protected void
concatenateTransformationMatrix(AffineTransform at)
protected static void
convertToGrayScaleImage(ImageObject io, byte[] raw, int width, int height, int bitsPerPixel)
Converts a byte array containing 24 bit RGB image data to a grayscale image.
protected RendererContext
createRendererContext(int x, int y, int width, int height, Map foreignAttributes)
void
drawBorderLine(float x1, float y1, float x2, float y2, boolean horz, boolean startOrBefore, int style, Color col)
void
drawBufferedImage(RenderedImage image, int imageResolution, int x, int y, int w, int h)
Draws a BufferedImage to AFP.
void
drawImage(String uri, Rectangle2D pos, Map foreignAttributes)
void
endTextObject()
Indicates the end of a text object.
void
endVParea()
void
fillRect(float x, float y, float width, float height)
Graphics2DAdapter
getGraphics2DAdapter()
String
getMimeType()
Get the MIME type of the renderer.
int
getResolution()
Returns the output/device resolution.
void
lineTo(float x, float y)
void
moveTo(float x, float y)
void
preparePage(PageViewport page)
Prepare a page for rendering.
void
processOffDocumentItem(OffDocumentItem odi)
protected void
renderBlockViewport(BlockViewport bv, List children)
protected void
renderFlow(NormalFlow flow)
void
renderImage(Image image, Rectangle2D pos)
void
renderLeader(Leader area)
Render leader area.
void
renderPage(PageViewport pageViewport)
protected void
renderReferenceArea(Block block)
void
renderRegionViewport(RegionViewport port)
Renders a region viewport.
void
renderSpace(SpaceArea space)
void
renderText(TextArea text)
void
renderWord(WordArea word)
void
restoreGraphicsState()
Restores the last graphics state of the rendering engine.
void
restoreStateStackAfterBreakOut(List breakOutList)
void
saveGraphicsState()
Saves the graphics state of the rendering engine.
void
setBitsPerPixel(int bitsPerPixel)
Sets the number of bits used per pixel
void
setColorImages(boolean colorImages)
Sets whether images are color or not
void
setLandscapeRotation(int rotation)
Sets the rotation to be used for landsacpe pages, valid values are 0, 90, 180, 270 (default).
void
setPortraitRotation(int rotation)
Sets the rotation to be used for portrait pages, valid values are 0 (default), 90, 180, 270.
void
setResolution(int resolution)
Sets the output/device resolution
void
setUserAgent(FOUserAgent agent)
void
setupFontInfo(FontInfo inFontInfo)
Set up the font info
void
startRenderer(OutputStream outputStream)
void
startVParea(CTM ctm, Rectangle2D clippingRect)
void
stopRenderer()
boolean
supportsOutOfOrder()
void
updateColor(Color col, boolean fill)
Establishes a new foreground or fill color.
static void
writeImage(RenderedImage image, OutputStream out)
Writes a RenderedImage to an OutputStream as raw sRGB bitmaps.

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

beginTextObject, breakOutOfStateStack, clip, clipRect, closePath, concatenateTransformationMatrix, drawBackAndBorders, drawBorderLine, drawBorders, drawImage, drawImage, endTextObject, fillRect, handleBlockTraits, handleRegionTraits, lineTo, moveTo, renderBlockViewport, renderFlow, renderForeignObject, renderInlineAreaBackAndBorders, renderReferenceArea, renderTextDecoration, renderViewport, restoreGraphicsState, restoreStateStackAfterBreakOut, saveGraphicsState, updateColor

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

addFontList, createRendererContext, getFontFromArea, getFontResolver, getInternalFontNameForArea, lightenColor, renderDocument, setFontList, setupFontInfo

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

convertTitleToString, endVParea, getCurrentPageViewport, getGraphics2DAdapter, getImageAdapter, getMimeType, getUserAgent, handleBlockTraits, handleRegionTraits, mptToPt, preparePage, processOffDocumentItem, ptToMpt, renderBeforeFloat, renderBlock, renderBlockViewport, renderBlocks, renderBodyRegion, renderCharacter, renderContainer, renderFlow, renderFootnote, renderForeignObject, renderImage, renderInlineArea, renderInlineAreaBackAndBorders, renderInlineBlockParent, renderInlineParent, renderInlineSpace, renderLeader, renderLineArea, renderMainReference, renderPage, renderPageAreas, renderReferenceArea, renderRegion, renderRegionViewport, renderSpace, renderText, renderViewport, renderWord, renderXML, setUserAgent, setupFontInfo, startPageSequence, startPageSequence, startRenderer, startVParea, stopRenderer, supportsOutOfOrder

Constructor Details

AFPRenderer

public AFPRenderer()
Constructor for AFPRenderer.

Method Details

beginTextObject

public void beginTextObject()
Indicates the beginning of a text object.
Overrides:
beginTextObject in interface AbstractPathOrientedRenderer

breakOutOfStateStack

public List breakOutOfStateStack()
Overrides:
breakOutOfStateStack in interface AbstractPathOrientedRenderer

clip

public void clip()
Overrides:
clip in interface AbstractPathOrientedRenderer

clipRect

public void clipRect(float x,
                     float y,
                     float width,
                     float height)
Overrides:
clipRect in interface AbstractPathOrientedRenderer

closePath

public void closePath()
Overrides:
closePath in interface AbstractPathOrientedRenderer

concatenateTransformationMatrix

protected void concatenateTransformationMatrix(AffineTransform at)
Overrides:
concatenateTransformationMatrix in interface AbstractPathOrientedRenderer

convertToGrayScaleImage

protected static void convertToGrayScaleImage(ImageObject io,
                                              byte[] raw,
                                              int width,
                                              int height,
                                              int bitsPerPixel)
Converts a byte array containing 24 bit RGB image data to a grayscale image.
Parameters:
io - the target image object
raw - the buffer containing the RGB image data
width - the width of the image in pixels
height - the height of the image in pixels
bitsPerPixel - the number of bits to use per pixel

createRendererContext

protected RendererContext createRendererContext(int x,
                                                int y,
                                                int width,
                                                int height,
                                                Map foreignAttributes)
Overrides:
createRendererContext in interface PrintRenderer

drawBorderLine

public void drawBorderLine(float x1,
                           float y1,
                           float x2,
                           float y2,
                           boolean horz,
                           boolean startOrBefore,
                           int style,
                           Color col)
Overrides:
drawBorderLine in interface AbstractPathOrientedRenderer

drawBufferedImage

public void drawBufferedImage(RenderedImage image,
                              int imageResolution,
                              int x,
                              int y,
                              int w,
                              int h)
Draws a BufferedImage to AFP.
Parameters:
image - the RenderedImage
imageResolution - the resolution of the BufferedImage
x - the x coordinate (in mpt)
y - the y coordinate (in mpt)
w - the width of the viewport (in mpt)
h - the height of the viewport (in mpt)

drawImage

public void drawImage(String uri,
                      Rectangle2D pos,
                      Map foreignAttributes)
Overrides:
drawImage in interface AbstractPathOrientedRenderer

endTextObject

public void endTextObject()
Indicates the end of a text object.
Overrides:
endTextObject in interface AbstractPathOrientedRenderer

endVParea

public void endVParea()
Overrides:
endVParea in interface AbstractRenderer

fillRect

public void fillRect(float x,
                     float y,
                     float width,
                     float height)
Overrides:
fillRect in interface AbstractPathOrientedRenderer

getGraphics2DAdapter

public Graphics2DAdapter getGraphics2DAdapter()
Specified by:
getGraphics2DAdapter in interface Renderer
Overrides:
getGraphics2DAdapter in interface AbstractRenderer

getMimeType

public String getMimeType()
Get the MIME type of the renderer.
Specified by:
getMimeType in interface Renderer
Overrides:
getMimeType in interface AbstractRenderer
Returns:
The MIME type of the renderer

getResolution

public int getResolution()
Returns the output/device resolution.
Returns:
the resolution in dpi

lineTo

public void lineTo(float x,
                   float y)
Overrides:
lineTo in interface AbstractPathOrientedRenderer

moveTo

public void moveTo(float x,
                   float y)
Overrides:
moveTo in interface AbstractPathOrientedRenderer

preparePage

public void preparePage(PageViewport page)
Prepare a page for rendering. 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 render page.
Specified by:
preparePage in interface Renderer
Overrides:
preparePage in interface AbstractRenderer

processOffDocumentItem

public void processOffDocumentItem(OffDocumentItem odi)
Specified by:
processOffDocumentItem in interface Renderer
Overrides:
processOffDocumentItem in interface AbstractRenderer

renderBlockViewport

protected void renderBlockViewport(BlockViewport bv,
                                   List children)
Overrides:
renderBlockViewport in interface AbstractPathOrientedRenderer

renderFlow

protected void renderFlow(NormalFlow flow)
Overrides:
renderFlow in interface AbstractPathOrientedRenderer

renderImage

public void renderImage(Image image,
                        Rectangle2D pos)
Overrides:
renderImage in interface AbstractRenderer

renderLeader

public void renderLeader(Leader area)
Render leader area. This renders a leader area which is an area with a rule.
Overrides:
renderLeader in interface AbstractRenderer
Parameters:
area - the leader area to render

renderPage

public void renderPage(PageViewport pageViewport)
Specified by:
renderPage in interface Renderer
Overrides:
renderPage in interface AbstractRenderer

renderReferenceArea

protected void renderReferenceArea(Block block)
Overrides:
renderReferenceArea in interface AbstractPathOrientedRenderer

renderRegionViewport

public void renderRegionViewport(RegionViewport port)
Renders a region viewport.

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

Overrides:
renderRegionViewport in interface AbstractRenderer
Parameters:
port - The region viewport to be rendered

renderSpace

public void renderSpace(SpaceArea space)
Overrides:
renderSpace in interface AbstractRenderer

renderText

public void renderText(TextArea text)
Overrides:
renderText in interface AbstractRenderer

renderWord

public void renderWord(WordArea word)
Overrides:
renderWord in interface AbstractRenderer

restoreGraphicsState

public void restoreGraphicsState()
Restores the last graphics state of the rendering engine.
Overrides:
restoreGraphicsState in interface AbstractPathOrientedRenderer

restoreStateStackAfterBreakOut

public void restoreStateStackAfterBreakOut(List breakOutList)
Overrides:
restoreStateStackAfterBreakOut in interface AbstractPathOrientedRenderer

saveGraphicsState

public void saveGraphicsState()
Saves the graphics state of the rendering engine.
Overrides:
saveGraphicsState in interface AbstractPathOrientedRenderer

setBitsPerPixel

public void setBitsPerPixel(int bitsPerPixel)
Sets the number of bits used per pixel
Parameters:
bitsPerPixel - number of bits per pixel

setColorImages

public void setColorImages(boolean colorImages)
Sets whether images are color or not
Parameters:
colorImages - color image output

setLandscapeRotation

public void setLandscapeRotation(int rotation)
Sets the rotation to be used for landsacpe pages, valid values are 0, 90, 180, 270 (default).
Parameters:
rotation - The rotation in degrees.

setPortraitRotation

public void setPortraitRotation(int rotation)
Sets the rotation to be used for portrait pages, valid values are 0 (default), 90, 180, 270.
Parameters:
rotation - The rotation in degrees.

setResolution

public void setResolution(int resolution)
Sets the output/device resolution
Parameters:
resolution - the output resolution (dpi)

setUserAgent

public void setUserAgent(FOUserAgent agent)
Specified by:
setUserAgent in interface Renderer
Overrides:
setUserAgent in interface AbstractRenderer

setupFontInfo

public void setupFontInfo(FontInfo inFontInfo)
Set up the font info
Specified by:
setupFontInfo in interface Renderer
Overrides:
setupFontInfo in interface PrintRenderer
Parameters:
inFontInfo - font info to set up

startRenderer

public void startRenderer(OutputStream outputStream)
            throws IOException
Specified by:
startRenderer in interface Renderer
Overrides:
startRenderer in interface AbstractRenderer

startVParea

public void startVParea(CTM ctm,
                        Rectangle2D clippingRect)
Overrides:
startVParea in interface AbstractRenderer

stopRenderer

public void stopRenderer()
            throws IOException
Specified by:
stopRenderer in interface Renderer
Overrides:
stopRenderer in interface AbstractRenderer

supportsOutOfOrder

public boolean supportsOutOfOrder()
Specified by:
supportsOutOfOrder in interface Renderer
Overrides:
supportsOutOfOrder in interface AbstractRenderer

updateColor

public void updateColor(Color col,
                        boolean fill)
Establishes a new foreground or fill color.
Overrides:
updateColor in interface AbstractPathOrientedRenderer

writeImage

public static void writeImage(RenderedImage image,
                              OutputStream out)
            throws IOException
Writes a RenderedImage to an OutputStream as raw sRGB bitmaps.
Parameters:
image - the RenderedImage
out - the OutputStream

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