Package org.apache.fop.render.java2d
Class Java2DRenderer
- java.lang.Object
-
- org.apache.fop.render.AbstractRenderer
-
- org.apache.fop.render.PrintRenderer
-
- org.apache.fop.render.AbstractPathOrientedRenderer
-
- org.apache.fop.render.java2d.Java2DRenderer
-
- Direct Known Subclasses:
AWTRenderer,PageableRenderer,PNGRenderer,TIFFRenderer
public abstract class Java2DRenderer extends AbstractPathOrientedRenderer implements java.awt.print.Printable
TheJava2DRendererclass provides the abstract technical foundation for all rendering with the Java2D API. Renderers likeAWTRenderersubclass it and provide the concrete output paths.A lot of the logic is performed by
AbstractRenderer. The class-variablescurrentIPPositionandcurrentBPPositionhold the position of the currently rendered area.Java2DGraphicsState stateholds theGraphics2D, which is used along the whole rendering.statealso acts as a stack (state.push()andstate.pop()).The rendering process is basically always the same:
void renderXXXXX(Area area) { //calculate the currentPosition state.updateFont(name, size, null); state.updateColor(ct, false, null); state.getGraph.draw(new Shape(args)); }
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanantialiasingtrue if anti-aliasing is setprotected intpageHeightThe page height in pixelsprotected java.util.ListpageViewportListList of Viewportsprotected intpageWidthThe page width in pixelsprotected booleanqualityRenderingtrue if qualityRendering is setprotected doublescaleFactorThe scale factor for the image size, values: ]0 ; 1]protected Java2DGraphicsStatestateThe current state, holds a Graphics2D and its contextprotected booleantransparentPageBackgroundfalse: paints a non-transparent white background, true: for a transparent background-
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, 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, 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 Description Java2DRenderer(FOUserAgent userAgent)Default constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidbeginTextObject()Indicates the beginning of a text object.protected java.util.ListbreakOutOfStateStack()Breaks out of the state stack to handle fixed block-containers.voidclearViewportList()Clears the ViewportList.protected voidclip()Clip using the current path.protected voidclipRect(float x, float y, float width, float height)Clip using a rectangular area.protected voidclosePath()Closes the current subpath by appending a straight line segment from the current point to the starting point of the subpath.protected voidconcatenateTransformationMatrix(java.awt.geom.AffineTransform at)Concatenates the current transformation matrix with the given one, therefore establishing a new coordinate system.protected RendererContextcreateRendererContext(int x, int y, int width, int height, java.util.Map foreignAttributes)Creates a RendererContext for an image.protected voiddrawBorderLine(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.static voiddrawBorderLine(java.awt.geom.Rectangle2D.Float lineRect, boolean horz, boolean startOrBefore, int style, java.awt.Color col, java.awt.Graphics2D g2d)Draw a border segment of an XSL-FO style border.protected voiddrawImage(java.lang.String uri, java.awt.geom.Rectangle2D pos, java.util.Map foreignAttributes)Draw an image at the indicated location.protected voidendLayer()Finish current optional content group layer.protected voidendTextObject()Indicates the end of a text object.protected voidendVParea()Signals exit from a viewport area.protected voidfillRect(float x, float y, float width, float height)Fill a rectangular area.protected java.awt.image.BufferedImagegetBufferedImage(int bitmapWidth, int bitmapHeight)Returns a specificBufferedImageto paint a page image on.intgetCurrentPageNumber()Graphics2DAdaptergetGraphics2DAdapter()intgetNumberOfPages()Returns the number of pages available.java.awt.image.BufferedImagegetPageImage(int pageNum)Generates a desired page from the renderer's page viewport list.java.awt.image.BufferedImagegetPageImage(PageViewport pageViewport)Generates a desired page from the renderer's page viewport list.PageViewportgetPageViewport(int pageIndex)Returns a page viewport.doublegetScaleFactor()FOUserAgentgetUserAgent()Returns the associated user agent.booleanisRenderingDone()protected voidlineTo(float x, float y)Appends a straight line segment from the current point to (x, y).protected voidmoveTo(float x, float y)Moves the current point to (x, y), omitting any connecting line segment.intprint(java.awt.Graphics g, java.awt.print.PageFormat pageFormat, int pageIndex)protected voidrememberPage(PageViewport pageViewport)Stores the pageViewport in a list of page viewports so they can be rendered later.voidrenderImage(Image image, java.awt.geom.Rectangle2D pos)Renders an image area.voidrenderLeader(Leader area)Render leader area.voidrenderPage(PageViewport pageViewport)This method override only stores the PageViewport in a List.voidrenderText(TextArea text)Render the given TextArea.static voidrenderText(TextArea text, java.awt.Graphics2D g2d, Font font, FontInfo fontInfo)Renders a TextArea to a Graphics2D instance.protected voidrestoreGraphicsState()Restores the last graphics state of the rendering engine.protected voidrestoreStateStackAfterBreakOut(java.util.List breakOutList)Restores the state stack after a break out.protected voidsaveGraphicsState()Saves the graphics state of the rendering engine.voidsetCurrentPageNumber(int c)voidsetScaleFactor(double newScaleFactor)Sets the new scale factor.voidsetTransparentPageBackground(boolean transparentPageBackground)Controls the page background.voidsetupFontInfo(FontInfo inFontInfo)Set up the given FontInfo.protected voidstartLayer(java.lang.String layer)Establish new optional content group layer.voidstartRenderer(java.io.OutputStream out)Initiates the rendering phase.protected voidstartVParea(CTM ctm, java.awt.Rectangle clippingRect)Establishes a new viewport area.voidstopRenderer()Signals the end of the rendering phase.protected voidupdateColor(java.awt.Color col, boolean fill)Establishes a new foreground or fill color.-
Methods inherited from class org.apache.fop.render.AbstractPathOrientedRenderer
clipBackground, drawBackAndBorders, drawBackAndBorders, drawBackground, drawBackground, drawBorders, drawBorders, drawImage, establishTransformationMatrix, handleBlockTraits, handleRegionTraits, renderBlockViewport, renderFlow, renderForeignObject, renderInlineAreaBackAndBorders, renderInlineViewport, renderReferenceArea, renderTextDecoration
-
Methods inherited from class org.apache.fop.render.PrintRenderer
addFontList, getFontFromArea, getFontInfo, getFontList, getInternalFontNameForArea, instantiateRendererContext, renderDocument, setFontList
-
Methods inherited from class org.apache.fop.render.AbstractRenderer
convertTitleToString, drawChangeBars, getBeginOffset, getCurrentPageViewport, getImageAdapter, maybeEndLayer, maybeStartLayer, mptToPt, preparePage, processOffDocumentItem, ptToMpt, renderBeforeFloat, renderBlock, renderBlocks, renderBodyRegion, renderContainer, renderFootnote, renderInlineArea, renderInlineBlock, renderInlineBlockParent, renderInlineParent, renderInlineSpace, renderLineArea, renderMainReference, renderPageAreas, renderRegion, renderRegionViewport, renderSpace, renderWord, renderXML, setBeginOffset, setDocumentLocale, startPageSequence, startPageSequence, supportsOutOfOrder
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.fop.render.Renderer
getMimeType
-
-
-
-
Field Detail
-
scaleFactor
protected double scaleFactor
The scale factor for the image size, values: ]0 ; 1]
-
pageWidth
protected int pageWidth
The page width in pixels
-
pageHeight
protected int pageHeight
The page height in pixels
-
pageViewportList
protected java.util.List pageViewportList
List of Viewports
-
antialiasing
protected boolean antialiasing
true if anti-aliasing is set
-
qualityRendering
protected boolean qualityRendering
true if qualityRendering is set
-
transparentPageBackground
protected boolean transparentPageBackground
false: paints a non-transparent white background, true: for a transparent background
-
state
protected Java2DGraphicsState state
The current state, holds a Graphics2D and its context
-
-
Constructor Detail
-
Java2DRenderer
public Java2DRenderer(FOUserAgent userAgent)
Default constructor- Parameters:
userAgent- the user agent that contains configuration details. This cannot be null.
-
-
Method Detail
-
getUserAgent
public FOUserAgent getUserAgent()
Description copied from class:AbstractRendererReturns the associated user agent.- Specified by:
getUserAgentin interfaceRenderer- Overrides:
getUserAgentin classAbstractRenderer- Returns:
- the FOUserAgent
-
setupFontInfo
public void setupFontInfo(FontInfo inFontInfo)
Set up the given FontInfo.- Specified by:
setupFontInfoin interfaceRenderer- Overrides:
setupFontInfoin classPrintRenderer- Parameters:
inFontInfo- The font information
-
getGraphics2DAdapter
public Graphics2DAdapter getGraphics2DAdapter()
- Specified by:
getGraphics2DAdapterin interfaceRenderer- Overrides:
getGraphics2DAdapterin classAbstractRenderer- Returns:
- the adapter for painting Java2D images (or null if not supported)
-
setScaleFactor
public void setScaleFactor(double newScaleFactor)
Sets the new scale factor.- Parameters:
newScaleFactor- ]0 ; 1]
-
getScaleFactor
public double getScaleFactor()
- Returns:
- the scale factor
-
startRenderer
public void startRenderer(java.io.OutputStream out) throws java.io.IOExceptionInitiates 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:
startRendererin interfaceRenderer- Overrides:
startRendererin classAbstractRenderer- Parameters:
out- The OutputStream to use for output- Throws:
java.io.IOException- If an I/O error occurs
-
stopRenderer
public void stopRenderer() throws java.io.IOExceptionSignals 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:
stopRendererin interfaceRenderer- Overrides:
stopRendererin classAbstractRenderer- Throws:
java.io.IOException- If an I/O error occurs
-
isRenderingDone
public boolean isRenderingDone()
- Returns:
- true if the renderer is not currently processing
-
getCurrentPageNumber
public int getCurrentPageNumber()
- Returns:
- The 0-based current page number
-
setCurrentPageNumber
public void setCurrentPageNumber(int c)
- Parameters:
c- the 0-based current page number
-
getNumberOfPages
public int getNumberOfPages()
Returns the number of pages available. This method is also part of the Pageable interface.- Returns:
- The 0-based total number of rendered pages
- See Also:
Pageable
-
clearViewportList
public void clearViewportList()
Clears the ViewportList. Used if the document is reloaded.
-
renderPage
public void renderPage(PageViewport pageViewport) throws java.io.IOException, FOPException
This method override only stores the PageViewport in a List. No actual rendering is performed here. A renderer override renderPage() to get the freshly produced PageViewport, and render them on the fly (producing the desired BufferedImages by calling getPageImage(), which lazily starts the rendering process).- Specified by:
renderPagein interfaceRenderer- Overrides:
renderPagein classAbstractRenderer- Parameters:
pageViewport- thePageViewportobject supplied by the Area Tree- Throws:
java.io.IOException- In case of an I/O errorFOPException- if cloning of pageViewport is not supported- See Also:
Renderer
-
rememberPage
protected void rememberPage(PageViewport pageViewport)
Stores the pageViewport in a list of page viewports so they can be rendered later. Subclasses can override this method to filter pages, for example.- Parameters:
pageViewport- the page viewport
-
getPageImage
public java.awt.image.BufferedImage getPageImage(PageViewport pageViewport)
Generates a desired page from the renderer's page viewport list.- Parameters:
pageViewport- the PageViewport to be rendered- Returns:
- the
java.awt.image.BufferedImagecorresponding to the page or null if the page doesn't exist.
-
getBufferedImage
protected java.awt.image.BufferedImage getBufferedImage(int bitmapWidth, int bitmapHeight)Returns a specificBufferedImageto paint a page image on. This method can be overridden in subclasses to produce different image formats (ex. grayscale or b/w).- Parameters:
bitmapWidth- width of the image in pixelsbitmapHeight- heigth of the image in pixels- Returns:
- the newly created BufferedImage
-
getPageViewport
public PageViewport getPageViewport(int pageIndex) throws FOPException
Returns a page viewport.- Parameters:
pageIndex- the page index (zero-based)- Returns:
- the requested PageViewport instance
- Throws:
FOPException- If the page is out of range.
-
getPageImage
public java.awt.image.BufferedImage getPageImage(int pageNum) throws FOPExceptionGenerates a desired page from the renderer's page viewport list.- Parameters:
pageNum- the 0-based page number to generate- Returns:
- the
java.awt.image.BufferedImagecorresponding to the page or null if the page doesn't exist. - Throws:
FOPException- If there's a problem preparing the page image
-
saveGraphicsState
protected void saveGraphicsState()
Saves the graphics state of the rendering engine.- Specified by:
saveGraphicsStatein classAbstractPathOrientedRenderer
-
restoreGraphicsState
protected void restoreGraphicsState()
Restores the last graphics state of the rendering engine.- Specified by:
restoreGraphicsStatein classAbstractPathOrientedRenderer
-
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:
concatenateTransformationMatrixin classAbstractPathOrientedRenderer- Parameters:
at- the transformation matrix to process (coordinates in points)
-
startVParea
protected void startVParea(CTM ctm, java.awt.Rectangle clippingRect)
Establishes a new viewport area.- Specified by:
startVPareain classAbstractRenderer- Parameters:
ctm- the coordinate transformation matrix to useclippingRect- 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:
endVPareain classAbstractRenderer
-
startLayer
protected void startLayer(java.lang.String layer)
Establish new optional content group layer.- Specified by:
startLayerin classAbstractRenderer- Parameters:
layer- name of layer
-
endLayer
protected void endLayer()
Finish current optional content group layer.- Specified by:
endLayerin classAbstractRenderer
-
breakOutOfStateStack
protected java.util.List breakOutOfStateStack()
Breaks out of the state stack to handle fixed block-containers.- Specified by:
breakOutOfStateStackin classAbstractPathOrientedRenderer- 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:
restoreStateStackAfterBreakOutin classAbstractPathOrientedRenderer- Parameters:
breakOutList- the state stack to restore.
-
updateColor
protected void updateColor(java.awt.Color col, boolean fill)Establishes a new foreground or fill color.- Specified by:
updateColorin classAbstractPathOrientedRenderer- Parameters:
col- the color to apply (null skips this operation)fill- true to set the fill color, false for the foreground color
-
clip
protected void clip()
Clip using the current path.- Specified by:
clipin classAbstractPathOrientedRenderer
-
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:
closePathin classAbstractPathOrientedRenderer
-
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:
lineToin classAbstractPathOrientedRenderer- Parameters:
x- x coordinatey- y coordinate
-
moveTo
protected void moveTo(float x, float y)Moves the current point to (x, y), omitting any connecting line segment.- Specified by:
moveToin classAbstractPathOrientedRenderer- Parameters:
x- x coordinatey- y coordinate
-
clipRect
protected void clipRect(float x, float y, float width, float height)Clip using a rectangular area.- Specified by:
clipRectin classAbstractPathOrientedRenderer- 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)
-
fillRect
protected void fillRect(float x, float y, float width, float height)Fill a rectangular area.- Specified by:
fillRectin classAbstractPathOrientedRenderer- Parameters:
x- the x coordinatey- the y coordinatewidth- the width of the rectangleheight- the height of the rectangle
-
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:
drawBorderLinein classAbstractPathOrientedRenderer- Parameters:
x1- starting x coordinatey1- starting y coordinatex2- ending x coordinatey2- ending y coordinatehorz- true for horizontal border segments, false for vertical border segmentsstartOrBefore- 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
-
drawBorderLine
public static void drawBorderLine(java.awt.geom.Rectangle2D.Float lineRect, boolean horz, boolean startOrBefore, int style, java.awt.Color col, java.awt.Graphics2D g2d)Draw a border segment of an XSL-FO style border.- Parameters:
lineRect- the line defined by its bounding rectanglehorz- true for horizontal border segments, false for vertical border segmentsstartOrBefore- 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 segmentg2d- the Graphics2D instance to paint to
-
renderText
public void renderText(TextArea text)
Render the given TextArea.- Overrides:
renderTextin classAbstractRenderer- Parameters:
text- the text to render
-
renderText
public static void renderText(TextArea text, java.awt.Graphics2D g2d, Font font, FontInfo fontInfo)
Renders a TextArea to a Graphics2D instance. Adjust the coordinate system so that the start of the baseline of the first character is at coordinate (0,0).- Parameters:
text- the TextAreag2d- the Graphics2D to render tofont- the font to paint withfontInfo- the font information
-
renderLeader
public void renderLeader(Leader area)
Render leader area. This renders a leader area which is an area with a rule.- Overrides:
renderLeaderin classAbstractRenderer- Parameters:
area- the leader area to render
-
renderImage
public void renderImage(Image image, java.awt.geom.Rectangle2D pos)
Renders an image area.- Overrides:
renderImagein classAbstractRenderer- Parameters:
image- The imagepos- 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:
drawImagein classAbstractPathOrientedRenderer- Parameters:
uri- the URI/URL of the imagepos- the position of the imageforeignAttributes- an optional Map with foreign attributes, may be null
-
createRendererContext
protected RendererContext createRendererContext(int x, int y, int width, int height, java.util.Map foreignAttributes)
Creates a RendererContext for an image.- Overrides:
createRendererContextin classPrintRenderer- Parameters:
x- the x coordinate (in millipoints)y- the y coordinate (in millipoints)width- the width of the image (in millipoints)height- the height of the image (in millipoints)foreignAttributes- a Map or foreign attributes, may be null- Returns:
- the RendererContext
-
print
public int print(java.awt.Graphics g, java.awt.print.PageFormat pageFormat, int pageIndex) throws java.awt.print.PrinterException- Specified by:
printin interfacejava.awt.print.Printable- Throws:
java.awt.print.PrinterException
-
beginTextObject
protected void beginTextObject()
Indicates the beginning of a text object.- Specified by:
beginTextObjectin classAbstractPathOrientedRenderer
-
endTextObject
protected void endTextObject()
Indicates the end of a text object.- Specified by:
endTextObjectin classAbstractPathOrientedRenderer
-
setTransparentPageBackground
public void setTransparentPageBackground(boolean transparentPageBackground)
Controls the page background.- Parameters:
transparentPageBackground- true if the background should be transparent
-
-