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
The
Java2DRenderer
class provides the abstract technical
foundation for all rendering with the Java2D API. Renderers like
AWTRenderer
subclass it and provide the concrete output paths.
A lot of the logic is performed by AbstractRenderer
. The
class-variables currentIPPosition
and
currentBPPosition
hold the position of the currently rendered
area.
Java2DGraphicsState state
holds the Graphics2D
,
which is used along the whole rendering. state
also acts as a
stack (state.push()
and state.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
Modifier and TypeFieldDescriptionprotected boolean
true if anti-aliasing is setprotected int
The page height in pixelsprotected List
List of Viewportsprotected int
The page width in pixelsprotected boolean
true if qualityRendering is setprotected double
The scale factor for the image size, values: ]0 ; 1]protected Java2DGraphicsState
The current state, holds a Graphics2D and its contextprotected boolean
false: paints a non-transparent white background, true: for a transparent backgroundFields 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
Fields inherited from interface java.awt.print.Printable
NO_SUCH_PAGE, PAGE_EXISTS
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
Indicates the beginning of a text object.protected List
Breaks out of the state stack to handle fixed block-containers.void
Clears the ViewportList.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
Closes the current subpath by appending a straight line segment from the current point to the starting point of the subpath.protected void
Concatenates the current transformation matrix with the given one, therefore establishing a new coordinate system.protected RendererContext
createRendererContext
(int x, int y, int width, int height, Map foreignAttributes) Creates a RendererContext for an image.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.static void
drawBorderLine
(Rectangle2D.Float lineRect, boolean horz, boolean startOrBefore, int style, Color col, Graphics2D g2d) Draw a border segment of an XSL-FO style border.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
Indicates the end of a text object.protected void
Signals exit from a viewport area.protected void
fillRect
(float x, float y, float width, float height) Fill a rectangular area.protected BufferedImage
getBufferedImage
(int bitmapWidth, int bitmapHeight) Returns a specificBufferedImage
to paint a page image on.int
int
Returns the number of pages available.getPageImage
(int pageNum) Generates a desired page from the renderer's page viewport list.getPageImage
(PageViewport pageViewport) Generates a desired page from the renderer's page viewport list.getPageViewport
(int pageIndex) Returns a page viewport.double
Returns the associated user agent.boolean
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.int
print
(Graphics g, PageFormat pageFormat, int pageIndex) protected void
rememberPage
(PageViewport pageViewport) Stores the pageViewport in a list of page viewports so they can be rendered later.void
renderImage
(Image image, Rectangle2D pos) Renders an image area.void
renderLeader
(Leader area) Render leader area.void
renderPage
(PageViewport pageViewport) This method override only stores the PageViewport in a List.void
renderText
(TextArea text) Render the given TextArea.static void
renderText
(TextArea text, Graphics2D g2d, Font font, FontInfo fontInfo) Renders a TextArea to a Graphics2D instance.protected void
Restores the last graphics state of the rendering engine.protected void
restoreStateStackAfterBreakOut
(List breakOutList) Restores the state stack after a break out.protected void
Saves the graphics state of the rendering engine.void
setCurrentPageNumber
(int c) void
setScaleFactor
(double newScaleFactor) Sets the new scale factor.void
setTransparentPageBackground
(boolean transparentPageBackground) Controls the page background.void
setupFontInfo
(FontInfo inFontInfo) Set up the given FontInfo.protected void
startLayer
(String layer) Establish new optional content group layer.void
Initiates the rendering phase.protected void
startVParea
(CTM ctm, Rectangle clippingRect) Establishes a new viewport area.void
Signals the end of the rendering phase.protected void
updateColor
(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 Details
-
scaleFactor
protected double scaleFactorThe scale factor for the image size, values: ]0 ; 1] -
pageWidth
protected int pageWidthThe page width in pixels -
pageHeight
protected int pageHeightThe page height in pixels -
pageViewportList
List of Viewports -
antialiasing
protected boolean antialiasingtrue if anti-aliasing is set -
qualityRendering
protected boolean qualityRenderingtrue if qualityRendering is set -
transparentPageBackground
protected boolean transparentPageBackgroundfalse: paints a non-transparent white background, true: for a transparent background -
state
The current state, holds a Graphics2D and its context
-
-
Constructor Details
-
Java2DRenderer
Default constructor- Parameters:
userAgent
- the user agent that contains configuration details. This cannot be null.
-
-
Method Details
-
getUserAgent
Description copied from class:AbstractRenderer
Returns the associated user agent.- Specified by:
getUserAgent
in interfaceRenderer
- Overrides:
getUserAgent
in classAbstractRenderer
- Returns:
- the FOUserAgent
-
setupFontInfo
Set up the given FontInfo.- Specified by:
setupFontInfo
in interfaceRenderer
- Overrides:
setupFontInfo
in classPrintRenderer
- Parameters:
inFontInfo
- The font information
-
getGraphics2DAdapter
- Specified by:
getGraphics2DAdapter
in interfaceRenderer
- Overrides:
getGraphics2DAdapter
in 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
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 interfaceRenderer
- Overrides:
startRenderer
in classAbstractRenderer
- Parameters:
out
- The OutputStream to use for output- Throws:
IOException
- If an I/O error occurs
-
stopRenderer
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 interfaceRenderer
- Overrides:
stopRenderer
in classAbstractRenderer
- Throws:
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:
-
clearViewportList
public void clearViewportList()Clears the ViewportList. Used if the document is reloaded. -
renderPage
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:
renderPage
in interfaceRenderer
- Overrides:
renderPage
in classAbstractRenderer
- Parameters:
pageViewport
- thePageViewport
object supplied by the Area Tree- Throws:
IOException
- In case of an I/O errorFOPException
- if cloning of pageViewport is not supported- See Also:
-
rememberPage
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
Generates a desired page from the renderer's page viewport list.- Parameters:
pageViewport
- the PageViewport to be rendered- Returns:
- the
java.awt.image.BufferedImage
corresponding to the page or null if the page doesn't exist.
-
getBufferedImage
Returns a specificBufferedImage
to 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
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
Generates a desired page from the renderer's page viewport list.- Parameters:
pageNum
- the 0-based page number to generate- Returns:
- the
java.awt.image.BufferedImage
corresponding 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:
saveGraphicsState
in classAbstractPathOrientedRenderer
-
restoreGraphicsState
protected void restoreGraphicsState()Restores the last graphics state of the rendering engine.- Specified by:
restoreGraphicsState
in classAbstractPathOrientedRenderer
-
concatenateTransformationMatrix
Concatenates the current transformation matrix with the given one, therefore establishing a new coordinate system.- Specified by:
concatenateTransformationMatrix
in classAbstractPathOrientedRenderer
- Parameters:
at
- the transformation matrix to process (coordinates in points)
-
startVParea
Establishes a new viewport area.- Specified by:
startVParea
in 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:
endVParea
in classAbstractRenderer
-
startLayer
Establish new optional content group layer.- Specified by:
startLayer
in classAbstractRenderer
- Parameters:
layer
- name of layer
-
endLayer
protected void endLayer()Finish current optional content group layer.- Specified by:
endLayer
in classAbstractRenderer
-
breakOutOfStateStack
Breaks out of the state stack to handle fixed block-containers.- Specified by:
breakOutOfStateStack
in classAbstractPathOrientedRenderer
- Returns:
- the saved state stack to recreate later
-
restoreStateStackAfterBreakOut
Restores the state stack after a break out.- Specified by:
restoreStateStackAfterBreakOut
in classAbstractPathOrientedRenderer
- Parameters:
breakOutList
- the state stack to restore.
-
updateColor
Establishes a new foreground or fill color.- Specified by:
updateColor
in 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:
clip
in 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:
closePath
in 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:
lineTo
in 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:
moveTo
in 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:
clipRect
in 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:
fillRect
in 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, Color col) Draw a border segment of an XSL-FO style border.- Specified by:
drawBorderLine
in 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(Rectangle2D.Float lineRect, boolean horz, boolean startOrBefore, int style, Color col, 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
Render the given TextArea.- Overrides:
renderText
in classAbstractRenderer
- Parameters:
text
- the text to render
-
renderText
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
Render leader area. This renders a leader area which is an area with a rule.- Overrides:
renderLeader
in classAbstractRenderer
- Parameters:
area
- the leader area to render
-
renderImage
Renders an image area.- Overrides:
renderImage
in classAbstractRenderer
- Parameters:
image
- The imagepos
- The target position of the image (todo) Make renderImage() protected
-
drawImage
Draw an image at the indicated location.- Specified by:
drawImage
in 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, Map foreignAttributes) Creates a RendererContext for an image.- Overrides:
createRendererContext
in 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
- Specified by:
print
in interfacePrintable
- Throws:
PrinterException
-
beginTextObject
protected void beginTextObject()Indicates the beginning of a text object.- Specified by:
beginTextObject
in classAbstractPathOrientedRenderer
-
endTextObject
protected void endTextObject()Indicates the end of a text object.- Specified by:
endTextObject
in classAbstractPathOrientedRenderer
-
setTransparentPageBackground
public void setTransparentPageBackground(boolean transparentPageBackground) Controls the page background.- Parameters:
transparentPageBackground
- true if the background should be transparent
-