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
TheJava2DRenderer
class provides the abstract technical foundation for all rendering with the Java2D API. Renderers likeAWTRenderer
subclass it and provide the concrete output paths.A lot of the logic is performed by
AbstractRenderer
. The class-variablescurrentIPPosition
andcurrentBPPosition
hold the position of the currently rendered area.Java2DGraphicsState state
holds theGraphics2D
, which is used along the whole rendering.state
also 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 boolean
antialiasing
true if anti-aliasing is setprotected int
pageHeight
The page height in pixelsprotected java.util.List
pageViewportList
List of Viewportsprotected int
pageWidth
The page width in pixelsprotected boolean
qualityRendering
true if qualityRendering is setprotected double
scaleFactor
The scale factor for the image size, values: ]0 ; 1]protected Java2DGraphicsState
state
The current state, holds a Graphics2D and its contextprotected boolean
transparentPageBackground
false: 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
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, 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 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.void
clearViewportList()
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
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 RendererContext
createRendererContext(int x, int y, int width, int height, java.util.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, java.awt.Color col)
Draw a border segment of an XSL-FO style border.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.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
endLayer()
Finish current optional content group layer.protected void
endTextObject()
Indicates the end of a text object.protected void
endVParea()
Signals exit from a viewport area.protected void
fillRect(float x, float y, float width, float height)
Fill a rectangular area.protected java.awt.image.BufferedImage
getBufferedImage(int bitmapWidth, int bitmapHeight)
Returns a specificBufferedImage
to paint a page image on.int
getCurrentPageNumber()
Graphics2DAdapter
getGraphics2DAdapter()
int
getNumberOfPages()
Returns the number of pages available.java.awt.image.BufferedImage
getPageImage(int pageNum)
Generates a desired page from the renderer's page viewport list.java.awt.image.BufferedImage
getPageImage(PageViewport pageViewport)
Generates a desired page from the renderer's page viewport list.PageViewport
getPageViewport(int pageIndex)
Returns a page viewport.double
getScaleFactor()
FOUserAgent
getUserAgent()
Returns the associated user agent.boolean
isRenderingDone()
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(java.awt.Graphics g, java.awt.print.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, java.awt.geom.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, java.awt.Graphics2D g2d, Font font, FontInfo fontInfo)
Renders a TextArea to a Graphics2D instance.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
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(java.lang.String layer)
Establish new optional content group layer.void
startRenderer(java.io.OutputStream out)
Initiates the rendering phase.protected void
startVParea(CTM ctm, java.awt.Rectangle clippingRect)
Establishes a new viewport area.void
stopRenderer()
Signals the end of the rendering phase.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
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, getCurrentPageViewport, getImageAdapter, maybeEndLayer, maybeStartLayer, mptToPt, preparePage, processOffDocumentItem, ptToMpt, renderBeforeFloat, renderBlock, renderBlocks, renderBodyRegion, renderContainer, renderFootnote, renderInlineArea, renderInlineBlockParent, renderInlineParent, renderInlineSpace, renderLineArea, renderMainReference, renderPageAreas, renderRegion, renderRegionViewport, renderSpace, renderWord, renderXML, 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:AbstractRenderer
Returns the associated user agent.- Specified by:
getUserAgent
in interfaceRenderer
- Overrides:
getUserAgent
in classAbstractRenderer
- Returns:
- the FOUserAgent
-
setupFontInfo
public void setupFontInfo(FontInfo inFontInfo)
Set up the given FontInfo.- Specified by:
setupFontInfo
in interfaceRenderer
- Overrides:
setupFontInfo
in classPrintRenderer
- Parameters:
inFontInfo
- The font information
-
getGraphics2DAdapter
public Graphics2DAdapter 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
public void startRenderer(java.io.OutputStream out) 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 interfaceRenderer
- Overrides:
startRenderer
in 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.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 interfaceRenderer
- Overrides:
stopRenderer
in 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:
renderPage
in interfaceRenderer
- Overrides:
renderPage
in classAbstractRenderer
- Parameters:
pageViewport
- thePageViewport
object 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.BufferedImage
corresponding to the page or null if the page doesn't exist.
-
getBufferedImage
protected java.awt.image.BufferedImage getBufferedImage(int bitmapWidth, int bitmapHeight)
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
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 FOPException
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
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 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:
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
protected void startLayer(java.lang.String layer)
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
protected java.util.List 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
protected void restoreStateStackAfterBreakOut(java.util.List breakOutList)
Restores the state stack after a break out.- Specified by:
restoreStateStackAfterBreakOut
in 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:
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, java.awt.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(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:
renderText
in 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:
renderLeader
in classAbstractRenderer
- Parameters:
area
- the leader area to render
-
renderImage
public void renderImage(Image image, java.awt.geom.Rectangle2D pos)
Renders an image area.- Overrides:
renderImage
in 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:
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, java.util.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
public int print(java.awt.Graphics g, java.awt.print.PageFormat pageFormat, int pageIndex) throws java.awt.print.PrinterException
- Specified by:
print
in interfacejava.awt.print.Printable
- Throws:
java.awt.print.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
-
-