fop 1.0

org.apache.fop.render.ps
Class PSRenderer

java.lang.Object
  extended by org.apache.fop.render.AbstractRenderer
      extended by org.apache.fop.render.PrintRenderer
          extended by org.apache.fop.render.AbstractPathOrientedRenderer
              extended by org.apache.fop.render.ps.PSRenderer
All Implemented Interfaces:
Constants, ImageAdapter, PSConfigurationConstants, PSSupportedFlavors, Renderer

public class PSRenderer
extends AbstractPathOrientedRenderer
implements ImageAdapter, PSSupportedFlavors, PSConfigurationConstants

Renderer that renders to PostScript.
This class currently generates PostScript Level 2 code. The only exception is the FlateEncode filter which is a Level 3 feature. The filters in use are hardcoded at the moment.
This class follows the Document Structuring Conventions (DSC) version 3.0. If anyone modifies this renderer please make sure to also follow the DSC to make it simpler to programmatically modify the generated Postscript files (ex. extract pages etc.).
This renderer inserts FOP-specific comments into the PostScript stream which may help certain users to do certain types of post-processing of the output. These comments all start with "%FOP".

Version:
$Id: PSRenderer.java 932497 2010-04-09 16:34:29Z vhennebert $
Author:
Apache FOP Development Team

Field Summary
protected  org.apache.xmlgraphics.ps.PSGenerator gen
          The PostScript generator used to output the PostScript
static java.lang.String MIME_TYPE
          The MIME type for PostScript
protected  PSRenderingUtil psUtil
          Utility class which enables all sorts of features that are not directly connected to the normal rendering process.
 
Fields inherited from class org.apache.fop.render.AbstractPathOrientedRenderer
FOX_TRANSFORM
 
Fields inherited from class org.apache.fop.render.PrintRenderer
embedFontInfoList, fontInfo, fontResolver
 
Fields inherited from class org.apache.fop.render.AbstractRenderer
containingBPPosition, containingIPPosition, currentBPPosition, currentIPPosition, currentPageViewport, userAgent
 
Fields inherited from interface org.apache.fop.render.ps.PSSupportedFlavors
LEVEL_2_FLAVORS_FORM, LEVEL_2_FLAVORS_INLINE, LEVEL_3_FLAVORS_FORM, LEVEL_3_FLAVORS_INLINE
 
Fields inherited from interface org.apache.fop.render.ps.PSConfigurationConstants
AUTO_ROTATE_LANDSCAPE, LANGUAGE_LEVEL, OPTIMIZE_RESOURCES
 
Fields inherited from interface org.apache.fop.render.Renderer
ROLE
 
Fields inherited from interface org.apache.fop.fo.Constants
COMPOUND_COUNT, COMPOUND_MASK, COMPOUND_SHIFT, CP_BLOCK_PROGRESSION_DIRECTION, CP_CONDITIONALITY, CP_INLINE_PROGRESSION_DIRECTION, CP_LENGTH, CP_MAXIMUM, CP_MINIMUM, CP_OPTIMUM, CP_PRECEDENCE, CP_WITHIN_COLUMN, CP_WITHIN_LINE, CP_WITHIN_PAGE, EN_100, EN_200, EN_300, EN_400, EN_500, EN_600, EN_700, EN_800, EN_900, EN_ABSOLUTE, EN_ABSOLUTE_COLORMETRIC, EN_AFTER, EN_AFTER_EDGE, EN_ALL, EN_ALPHABETIC, EN_ALTERNATE, EN_ALWAYS, EN_ANY, EN_AUTO, EN_AUTO_EVEN, EN_AUTO_ODD, EN_AVOID, EN_BACKSLANT, EN_BASELINE, EN_BEFORE, EN_BEFORE_EDGE, EN_BIDI_OVERRIDE, EN_BLANK, EN_BLINK, EN_BLOCK, EN_BOLDER, EN_BOTH, EN_BOTTOM, EN_BOUNDED_IN_ONE_DIMENSION, EN_CAPITALIZE, EN_CAPTION, EN_CENTER, EN_CENTRAL, EN_CHARACTER_BY_CHARACTER, EN_COLLAPSE, EN_COLLAPSE_WITH_PRECEDENCE, EN_COLUMN, EN_CONDENSED, EN_CONSIDER_SHIFTS, EN_DASHED, EN_DISCARD, EN_DISREGARD_SHIFTS, EN_DOCUMENT, EN_DOTS, EN_DOTTED, EN_DOUBLE, EN_EMBED, EN_END, EN_END_ON_EVEN, EN_END_ON_ODD, EN_ERROR_IF_OVERFLOW, EN_EVEN, EN_EVEN_PAGE, EN_EXPANDED, EN_EXTRA_CONDENSED, EN_EXTRA_EXPANDED, EN_FALSE, EN_FIC, EN_FIRST, EN_FIRST_STARTING, EN_FIXED, EN_FONT_HEIGHT, EN_FORCE, EN_FSWP, EN_GROOVE, EN_HANGING, EN_HIDDEN, EN_HIDE, EN_ICON, EN_IDEOGRAPHIC, EN_IGNORE, EN_IGNORE_IF_AFTER_LINEFEED, EN_IGNORE_IF_BEFORE_LINEFEED, EN_IGNORE_IF_SURROUNDING_LINEFEED, EN_INDEFINITE, EN_INDENT, EN_INHERIT, EN_INSET, EN_INSIDE, EN_INTEGER_PIXELS, EN_ITALIC, EN_JUSTIFY, EN_LARGER, EN_LAST, EN_LAST_ENDING, EN_LAST_STARTING, EN_LEAVE_SEPARATE, EN_LEFT, EN_LEWP, EN_LIGHTER, EN_LINE, EN_LINE_HEIGHT, EN_LINE_THROUGH, EN_LINK, EN_LOWERCASE, EN_LR_TB, EN_LSWP, EN_LTR, EN_MATHEMATICAL, EN_MAX_HEIGHT, EN_MENU, EN_MERGE, EN_MESSAGE_BOX, EN_MIDDLE, EN_NARROWER, EN_NEW, EN_NO_BLINK, EN_NO_CHANGE, EN_NO_FORCE, EN_NO_LIMIT, EN_NO_LINE_THROUGH, EN_NO_LINK, EN_NO_OVERLINE, EN_NO_UNDERLINE, EN_NO_WRAP, EN_NON_UNIFORM, EN_NONE, EN_NOREPEAT, EN_NORMAL, EN_NOT_BLANK, EN_OBLIQUE, EN_ODD, EN_ODD_PAGE, EN_ONLY, EN_OUTSET, EN_OUTSIDE, EN_OVERLINE, EN_PAGE, EN_PAGE_SEQUENCE, EN_PAGINATE, EN_PERCEPTUAL, EN_PRE, EN_PRESERVE, EN_REFERENCE_AREA, EN_RELATIVE, EN_RELATIVE_COLOMETRIC, EN_REPEAT, EN_REPEATX, EN_REPEATY, EN_REPLACE, EN_RESAMPLE_ANY_METHOD, EN_RESET_SIZE, EN_REST, EN_RETAIN, EN_RIDGE, EN_RIGHT, EN_RL_TB, EN_RTL, EN_RULE, EN_SATURATION, EN_SCALE_DOWN_TO_FIT, EN_SCALE_TO_FIT, EN_SCALE_UP_TO_FIT, EN_SCROLL, EN_SEMI_CONDENSED, EN_SEMI_EXPANDED, EN_SEPARATE, EN_SHOW, EN_SMALL_CAPS, EN_SMALL_CAPTION, EN_SMALLER, EN_SOLID, EN_SPACE, EN_START, EN_STATIC, EN_STATUS_BAR, EN_SUB, EN_SUPER, EN_SUPPRESS, EN_TABLE, EN_TABLE_FRAGMENT, EN_TB_RL, EN_TEXT_AFTER_EDGE, EN_TEXT_BEFORE_EDGE, EN_TEXT_BOTTOM, EN_TEXT_TOP, EN_TOP, EN_TRADITIONAL, EN_TREAT_AS_SPACE, EN_TREAT_AS_ZERO_WIDTH_SPACE, EN_TRUE, EN_ULTRA_CONDENSED, EN_ULTRA_EXPANDED, EN_UNBOUNDED, EN_UNDERLINE, EN_UNIFORM, EN_UPPERCASE, EN_USE_FONT_METRICS, EN_USE_SCRIPT, EN_USECONTENT, EN_VISIBLE, EN_WIDER, EN_WRAP, EN_X_DISTRIBUTE, EN_X_FILL, ENUM_COUNT, FO_BASIC_LINK, FO_BIDI_OVERRIDE, FO_BLOCK, FO_BLOCK_CONTAINER, FO_BOOKMARK, FO_BOOKMARK_TITLE, FO_BOOKMARK_TREE, FO_CHANGE_BAR_BEGIN, FO_CHANGE_BAR_END, FO_CHARACTER, FO_COLOR_PROFILE, FO_CONDITIONAL_PAGE_MASTER_REFERENCE, FO_DECLARATIONS, FO_EXTERNAL_GRAPHIC, FO_FLOAT, FO_FLOW, FO_FLOW_ASSIGNMENT, FO_FLOW_MAP, FO_FLOW_NAME_SPECIFIER, FO_FLOW_SOURCE_LIST, FO_FLOW_TARGET_LIST, FO_FOLIO_PREFIX, FO_FOLIO_SUFFIX, FO_FOOTNOTE, FO_FOOTNOTE_BODY, FO_INDEX_KEY_REFERENCE, FO_INDEX_PAGE_CITATION_LIST, FO_INDEX_PAGE_CITATION_LIST_SEPARATOR, FO_INDEX_PAGE_CITATION_RANGE_SEPARATOR, FO_INDEX_PAGE_NUMBER_PREFIX, FO_INDEX_PAGE_NUMBER_SUFFIX, FO_INDEX_RANGE_BEGIN, FO_INDEX_RANGE_END, FO_INITIAL_PROPERTY_SET, FO_INLINE, FO_INLINE_CONTAINER, FO_INSTREAM_FOREIGN_OBJECT, FO_LAYOUT_MASTER_SET, FO_LEADER, FO_LIST_BLOCK, FO_LIST_ITEM, FO_LIST_ITEM_BODY, FO_LIST_ITEM_LABEL, FO_MARKER, FO_MULTI_CASE, FO_MULTI_PROPERTIES, FO_MULTI_PROPERTY_SET, FO_MULTI_SWITCH, FO_MULTI_TOGGLE, FO_PAGE_NUMBER, FO_PAGE_NUMBER_CITATION, FO_PAGE_NUMBER_CITATION_LAST, FO_PAGE_SEQUENCE, FO_PAGE_SEQUENCE_MASTER, FO_PAGE_SEQUENCE_WRAPPER, FO_REGION_AFTER, FO_REGION_BEFORE, FO_REGION_BODY, FO_REGION_END, FO_REGION_NAME_SPECIFIER, FO_REGION_START, FO_REPEATABLE_PAGE_MASTER_ALTERNATIVES, FO_REPEATABLE_PAGE_MASTER_REFERENCE, FO_RETRIEVE_MARKER, FO_RETRIEVE_TABLE_MARKER, FO_ROOT, FO_SCALING_VALUE_CITATION, FO_SIMPLE_PAGE_MASTER, FO_SINGLE_PAGE_MASTER_REFERENCE, FO_STATIC_CONTENT, FO_TABLE, FO_TABLE_AND_CAPTION, FO_TABLE_BODY, FO_TABLE_CAPTION, FO_TABLE_CELL, FO_TABLE_COLUMN, FO_TABLE_FOOTER, FO_TABLE_HEADER, FO_TABLE_ROW, FO_TITLE, FO_UNKNOWN_NODE, FO_WRAPPER, FRM_OBJ_COUNT, NOT_SET, PR_ABSOLUTE_POSITION, PR_ACTIVE_STATE, PR_ALIGNMENT_ADJUST, PR_ALIGNMENT_BASELINE, PR_AUTO_RESTORE, PR_AZIMUTH, PR_BACKGROUND, PR_BACKGROUND_ATTACHMENT, PR_BACKGROUND_COLOR, PR_BACKGROUND_IMAGE, PR_BACKGROUND_POSITION, PR_BACKGROUND_POSITION_HORIZONTAL, PR_BACKGROUND_POSITION_VERTICAL, PR_BACKGROUND_REPEAT, PR_BASELINE_SHIFT, PR_BLANK_OR_NOT_BLANK, PR_BLOCK_PROGRESSION_DIMENSION, PR_BORDER, PR_BORDER_AFTER_COLOR, PR_BORDER_AFTER_PRECEDENCE, PR_BORDER_AFTER_STYLE, PR_BORDER_AFTER_WIDTH, PR_BORDER_BEFORE_COLOR, PR_BORDER_BEFORE_PRECEDENCE, PR_BORDER_BEFORE_STYLE, PR_BORDER_BEFORE_WIDTH, PR_BORDER_BOTTOM, PR_BORDER_BOTTOM_COLOR, PR_BORDER_BOTTOM_STYLE, PR_BORDER_BOTTOM_WIDTH, PR_BORDER_COLLAPSE, PR_BORDER_COLOR, PR_BORDER_END_COLOR, PR_BORDER_END_PRECEDENCE, PR_BORDER_END_STYLE, PR_BORDER_END_WIDTH, PR_BORDER_LEFT, PR_BORDER_LEFT_COLOR, PR_BORDER_LEFT_STYLE, PR_BORDER_LEFT_WIDTH, PR_BORDER_RIGHT, PR_BORDER_RIGHT_COLOR, PR_BORDER_RIGHT_STYLE, PR_BORDER_RIGHT_WIDTH, PR_BORDER_SEPARATION, PR_BORDER_SPACING, PR_BORDER_START_COLOR, PR_BORDER_START_PRECEDENCE, PR_BORDER_START_STYLE, PR_BORDER_START_WIDTH, PR_BORDER_STYLE, PR_BORDER_TOP, PR_BORDER_TOP_COLOR, PR_BORDER_TOP_STYLE, PR_BORDER_TOP_WIDTH, PR_BORDER_WIDTH, PR_BOTTOM, PR_BREAK_AFTER, PR_BREAK_BEFORE, PR_CAPTION_SIDE, PR_CASE_NAME, PR_CASE_TITLE, PR_CHANGE_BAR_CLASS, PR_CHANGE_BAR_COLOR, PR_CHANGE_BAR_OFFSET, PR_CHANGE_BAR_PLACEMENT, PR_CHANGE_BAR_STYLE, PR_CHANGE_BAR_WIDTH, PR_CHARACTER, PR_CLEAR, PR_CLIP, PR_COLOR, PR_COLOR_PROFILE_NAME, PR_COLUMN_COUNT, PR_COLUMN_GAP, PR_COLUMN_NUMBER, PR_COLUMN_WIDTH, PR_CONTENT_HEIGHT, PR_CONTENT_TYPE, PR_CONTENT_WIDTH, PR_COUNTRY, PR_CUE, PR_CUE_AFTER, PR_CUE_BEFORE, PR_DESTINATION_PLACEMENT_OFFSET, PR_DIRECTION, PR_DISPLAY_ALIGN, PR_DOMINANT_BASELINE, PR_ELEVATION, PR_EMPTY_CELLS, PR_END_INDENT, PR_ENDS_ROW, PR_EXTENT, PR_EXTERNAL_DESTINATION, PR_FLOAT, PR_FLOW_MAP_NAME, PR_FLOW_MAP_REFERENCE, PR_FLOW_NAME, PR_FLOW_NAME_REFERENCE, PR_FONT, PR_FONT_FAMILY, PR_FONT_SELECTION_STRATEGY, PR_FONT_SIZE, PR_FONT_SIZE_ADJUST, PR_FONT_STRETCH, PR_FONT_STYLE, PR_FONT_VARIANT, PR_FONT_WEIGHT, PR_FORCE_PAGE_COUNT, PR_FORMAT, PR_GLYPH_ORIENTATION_HORIZONTAL, PR_GLYPH_ORIENTATION_VERTICAL, PR_GROUPING_SEPARATOR, PR_GROUPING_SIZE, PR_HEIGHT, PR_HYPHENATE, PR_HYPHENATION_CHARACTER, PR_HYPHENATION_KEEP, PR_HYPHENATION_LADDER_COUNT, PR_HYPHENATION_PUSH_CHARACTER_COUNT, PR_HYPHENATION_REMAIN_CHARACTER_COUNT, PR_ID, PR_INDEX_CLASS, PR_INDEX_KEY, PR_INDICATE_DESTINATION, PR_INITIAL_PAGE_NUMBER, PR_INLINE_PROGRESSION_DIMENSION, PR_INTERNAL_DESTINATION, PR_INTRINSIC_SCALE_VALUE, PR_INTRUSION_DISPLACE, PR_KEEP_TOGETHER, PR_KEEP_WITH_NEXT, PR_KEEP_WITH_PREVIOUS, PR_LANGUAGE, PR_LAST_LINE_END_INDENT, PR_LEADER_ALIGNMENT, PR_LEADER_LENGTH, PR_LEADER_PATTERN, PR_LEADER_PATTERN_WIDTH, PR_LEFT, PR_LETTER_SPACING, PR_LETTER_VALUE, PR_LINE_HEIGHT, PR_LINE_HEIGHT_SHIFT_ADJUSTMENT, PR_LINE_STACKING_STRATEGY, PR_LINEFEED_TREATMENT, PR_MARGIN, PR_MARGIN_BOTTOM, PR_MARGIN_LEFT, PR_MARGIN_RIGHT, PR_MARGIN_TOP, PR_MARKER_CLASS_NAME, PR_MASTER_NAME, PR_MASTER_REFERENCE, PR_MAX_HEIGHT, PR_MAX_WIDTH, PR_MAXIMUM_REPEATS, PR_MEDIA_USAGE, PR_MERGE_PAGES_ACROSS_INDEX_KEY_REFERENCES, PR_MERGE_RANGES_ACROSS_INDEX_KEY_REFERENCES, PR_MERGE_SEQUENTIAL_PAGE_NUMBERS, PR_MIN_HEIGHT, PR_MIN_WIDTH, PR_NUMBER_COLUMNS_REPEATED, PR_NUMBER_COLUMNS_SPANNED, PR_NUMBER_ROWS_SPANNED, PR_ODD_OR_EVEN, PR_ORPHANS, PR_OVERFLOW, PR_PADDING, PR_PADDING_AFTER, PR_PADDING_BEFORE, PR_PADDING_BOTTOM, PR_PADDING_END, PR_PADDING_LEFT, PR_PADDING_RIGHT, PR_PADDING_START, PR_PADDING_TOP, PR_PAGE_BREAK_AFTER, PR_PAGE_BREAK_BEFORE, PR_PAGE_BREAK_INSIDE, PR_PAGE_CITATION_STRATEGY, PR_PAGE_HEIGHT, PR_PAGE_NUMBER_TREATMENT, PR_PAGE_POSITION, PR_PAGE_WIDTH, PR_PAUSE, PR_PAUSE_AFTER, PR_PAUSE_BEFORE, PR_PITCH, PR_PITCH_RANGE, PR_PLAY_DURING, PR_POSITION, PR_PRECEDENCE, PR_PROVISIONAL_DISTANCE_BETWEEN_STARTS, PR_PROVISIONAL_LABEL_SEPARATION, PR_REF_ID, PR_REF_INDEX_KEY, PR_REFERENCE_ORIENTATION, PR_REGION_NAME, PR_REGION_NAME_REFERENCE, PR_RELATIVE_ALIGN, PR_RELATIVE_POSITION, PR_RENDERING_INTENT, PR_RETRIEVE_BOUNDARY, PR_RETRIEVE_BOUNDARY_WITHIN_TABLE, PR_RETRIEVE_CLASS_NAME, PR_RETRIEVE_POSITION, PR_RETRIEVE_POSITION_WITHIN_TABLE, PR_RICHNESS, PR_RIGHT, PR_ROLE, PR_RULE_STYLE, PR_RULE_THICKNESS, PR_SCALING, PR_SCALING_METHOD, PR_SCORE_SPACES, PR_SCRIPT, PR_SHOW_DESTINATION, PR_SIZE, PR_SOURCE_DOCUMENT, PR_SPACE_AFTER, PR_SPACE_BEFORE, PR_SPACE_END, PR_SPACE_START, PR_SPAN, PR_SPEAK, PR_SPEAK_HEADER, PR_SPEAK_NUMERAL, PR_SPEAK_PUNCTUATION, PR_SPEECH_RATE, PR_SRC, PR_START_INDENT, PR_STARTING_STATE, PR_STARTS_ROW, PR_STRESS, PR_SUPPRESS_AT_LINE_BREAK, PR_SWITCH_TO, PR_TABLE_LAYOUT, PR_TABLE_OMIT_FOOTER_AT_BREAK, PR_TABLE_OMIT_HEADER_AT_BREAK, PR_TARGET_PRESENTATION_CONTEXT, PR_TARGET_PROCESSING_CONTEXT, PR_TARGET_STYLESHEET, PR_TEXT_ALIGN, PR_TEXT_ALIGN_LAST, PR_TEXT_ALTITUDE, PR_TEXT_DECORATION, PR_TEXT_DEPTH, PR_TEXT_INDENT, PR_TEXT_SHADOW, PR_TEXT_TRANSFORM, PR_TOP, PR_TREAT_AS_WORD_SPACE, PR_UNICODE_BIDI, PR_VERTICAL_ALIGN, PR_VISIBILITY, PR_VOICE_FAMILY, PR_VOLUME, PR_WHITE_SPACE, PR_WHITE_SPACE_COLLAPSE, PR_WHITE_SPACE_TREATMENT, PR_WIDOWS, PR_WIDTH, PR_WORD_SPACING, PR_WRAP_OPTION, PR_WRITING_MODE, PR_X_ALT_TEXT, PR_X_BLOCK_PROGRESSION_UNIT, PR_X_DISABLE_COLUMN_BALANCING, PR_X_ORPHAN_CONTENT_LIMIT, PR_X_PTR, PR_X_WIDOW_CONTENT_LIMIT, PR_XML_LANG, PR_Z_INDEX, PROPERTY_COUNT, PROPERTY_MASK
 
Constructor Summary
PSRenderer()
           
 
Method Summary
protected  void beginTextObject()
          Indicates the beginning of a text object.
protected  java.util.List breakOutOfStateStack()
          Breaks out of the state stack to handle fixed block-containers.
protected  void clip()
          Clip using the current path.
protected  void clipRect(float x, float y, float width, float height)
          Clip using a rectangular area.
protected  void closePath()
          Closes the current subpath by appending a straight line segment from the current point to the starting point of the subpath.
protected  void comment(java.lang.String comment)
          Write out a comment
protected  void concatenateTransformationMatrix(java.awt.geom.AffineTransform at)
          Concatenates the current transformation matrix with the given one, therefore establishing a new coordinate system.
protected  void concatMatrix(double[] matrix)
          Concats the transformations matrix.
protected  void concatMatrix(double a, double b, double c, double d, double e, double f)
          Concats the transformation matrix.
protected  RendererContext createRendererContext(int x, int y, int width, int height, java.util.Map foreignAttributes)
          Creates a RendererContext for an image.
protected  void drawBackAndBorders(Area area, float startx, float starty, float width, float height)
          Draw the background and borders.
protected  void drawBorderLine(float x1, float y1, float x2, float y2, boolean horz, boolean startOrBefore, int style, java.awt.Color col)
          Draw a border segment of an XSL-FO style border.
protected  void drawImage(java.lang.String uri, java.awt.geom.Rectangle2D pos, java.util.Map foreignAttributes)
          Draw an image at the indicated location.
protected  void endTextObject()
          Indicates the end of a text object.
protected  void endVParea()
          Signals exit from a viewport area.
protected  void fillRect(float x, float y, float width, float height)
          Fill a rectangular area.
protected  org.apache.xmlgraphics.ps.PSResource getFormForImage(java.lang.String uri)
          Returns a PSResource instance representing a image as a PostScript form.
 Graphics2DAdapter getGraphics2DAdapter()
          
 ImageAdapter getImageAdapter()
          
 int getLanguageLevel()
          Return the PostScript language level that the renderer produces.
 java.lang.String getMimeType()
          Get the MIME type of the renderer.
protected  org.apache.xmlgraphics.ps.PSResource getPSResourceForFontKey(java.lang.String key)
          Returns the PSResource for the given font key.
protected  void handleIOTrouble(java.io.IOException ioe)
          Central exception handler for I/O exceptions.
 boolean isAutoRotateLandscape()
           
 boolean isOptimizeResources()
           
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.
protected  void movetoCurrPosition()
          Make sure the cursor is in the right place.
 void paintImage(java.awt.image.RenderedImage image, RendererContext context, int x, int y, int width, int height)
          Paints an image at the given position.
 void processOffDocumentItem(OffDocumentItem oDI)
          Tells the renderer to process an item not explicitly placed on the document (e.g., PDF bookmarks).
protected  void renderBlockViewport(BlockViewport bv, java.util.List children)
          Renders a block viewport.
 void renderImage(Image image, java.awt.geom.Rectangle2D pos)
          Renders an image area.
protected  void renderInlineParent(InlineParent ip)
          Render the given InlineParent.
 void renderLeader(Leader area)
          Render the given Leader.
 void renderPage(PageViewport page)
          Tells the renderer to render a particular page.
protected  void renderRegionViewport(RegionViewport port)
          Renders a region viewport.
protected  void renderSpace(SpaceArea space)
          Render the given SpaceArea.
 void renderText(TextArea area)
          Render the given TextArea.
protected  void renderWord(WordArea word)
          Render the given WordArea.
 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 rmoveTo(float x, float y)
          Moves the current point by (x, y) relative to the current position, omitting any connecting line segment.
 void saveGraphicsState()
          Saves the graphics state of the rendering engine.
 void setAutoRotateLandscape(boolean value)
          Sets the landscape mode for this renderer.
 void setDSCCompliant(boolean dscCompliant)
          Sets whether or not PostScript Document Structuring Conventions (dsc) compliance are enforced.
 void setLanguageLevel(int level)
          Sets the PostScript language level that the renderer should produce.
 void setOptimizeResources(boolean value)
          Sets the resource optimization mode.
 void setSafeSetPageDevice(boolean safeSetPageDevice)
          Sets whether or not the safe set page device macro should be used (as opposed to directly invoking setpagedevice) when setting the postscript page device.
 void setUserAgent(FOUserAgent agent)
          Set the User Agent.
 void startRenderer(java.io.OutputStream outputStream)
          Initiates the rendering phase.
protected  void startVParea(CTM ctm, java.awt.geom.Rectangle2D clippingRect)
          Establishes a new viewport area.
 void stopRenderer()
          Signals the end of the rendering phase.
protected  void updateColor(java.awt.Color col, boolean fill)
          Establishes a new foreground or fill color.
protected  void useFont(java.lang.String key, int size)
          Changes the currently used font.
protected  void writeln(java.lang.String cmd)
          Write out a command
 
Methods inherited from class org.apache.fop.render.AbstractPathOrientedRenderer
drawBackAndBorders, drawBackground, drawBorders, drawBorders, drawImage, establishTransformationMatrix, handleBlockTraits, handleRegionTraits, renderFlow, renderForeignObject, renderInlineAreaBackAndBorders, renderReferenceArea, renderTextDecoration, renderViewport
 
Methods inherited from class org.apache.fop.render.PrintRenderer
addFontList, getFontFromArea, getFontInfo, getFontList, getFontResolver, getInternalFontNameForArea, instantiateRendererContext, renderDocument, setFontList, setupFontInfo
 
Methods inherited from class org.apache.fop.render.AbstractRenderer
convertTitleToString, getCurrentPageViewport, getUserAgent, mptToPt, preparePage, ptToMpt, renderBeforeFloat, renderBlock, renderBlocks, renderBodyRegion, renderContainer, renderFootnote, renderInlineArea, renderInlineBlockParent, renderInlineSpace, renderLineArea, renderMainReference, renderPageAreas, renderRegion, renderXML, startPageSequence, startPageSequence, supportsOutOfOrder
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MIME_TYPE

public static final java.lang.String MIME_TYPE
The MIME type for PostScript

See Also:
Constant Field Values

gen

protected org.apache.xmlgraphics.ps.PSGenerator gen
The PostScript generator used to output the PostScript


psUtil

protected PSRenderingUtil psUtil
Utility class which enables all sorts of features that are not directly connected to the normal rendering process.

Constructor Detail

PSRenderer

public PSRenderer()
Method Detail

setUserAgent

public void setUserAgent(FOUserAgent agent)
Set the User Agent.

Specified by:
setUserAgent in interface Renderer
Overrides:
setUserAgent in class AbstractRenderer
Parameters:
agent - The User Agent

setAutoRotateLandscape

public void setAutoRotateLandscape(boolean value)
Sets the landscape mode for this renderer.

Parameters:
value - false will normally generate a "pseudo-portrait" page, true will rotate a "wider-than-long" page by 90 degrees.

isAutoRotateLandscape

public boolean isAutoRotateLandscape()
Returns:
true if the renderer is configured to rotate landscape pages

setLanguageLevel

public void setLanguageLevel(int level)
Sets the PostScript language level that the renderer should produce.

Parameters:
level - the language level (currently allowed: 2 or 3)

getLanguageLevel

public int getLanguageLevel()
Return the PostScript language level that the renderer produces.

Returns:
the language level

setOptimizeResources

public void setOptimizeResources(boolean value)
Sets the resource optimization mode. If set to true, the renderer does two passes to only embed the necessary resources in the PostScript file. This is slower, but produces smaller files.

Parameters:
value - true to enable the resource optimization

isOptimizeResources

public boolean isOptimizeResources()
Returns:
true if the renderer does two passes to optimize PostScript resources

getGraphics2DAdapter

public Graphics2DAdapter getGraphics2DAdapter()

Specified by:
getGraphics2DAdapter in interface Renderer
Overrides:
getGraphics2DAdapter in class AbstractRenderer
Returns:
the adapter for painting Java2D images (or null if not supported)

getImageAdapter

public ImageAdapter getImageAdapter()

Specified by:
getImageAdapter in interface Renderer
Overrides:
getImageAdapter in class AbstractRenderer
Returns:
the adapter for painting RenderedImages (or null if not supported)

writeln

protected void writeln(java.lang.String cmd)
Write out a command

Parameters:
cmd - PostScript command

handleIOTrouble

protected void handleIOTrouble(java.io.IOException ioe)
Central exception handler for I/O exceptions.

Parameters:
ioe - IOException to handle

comment

protected void comment(java.lang.String comment)
Write out a comment

Parameters:
comment - Comment to write

movetoCurrPosition

protected void movetoCurrPosition()
Make sure the cursor is in the right place.


clip

protected void clip()
Clip using the current path.

Specified by:
clip in class AbstractPathOrientedRenderer

clipRect

protected void clipRect(float x,
                        float y,
                        float width,
                        float height)
Clip using a rectangular area.

Specified by:
clipRect in class AbstractPathOrientedRenderer
Parameters:
x - the x coordinate (in points)
y - the y coordinate (in points)
width - the width of the rectangle (in points)
height - the height of the rectangle (in points)

moveTo

protected void moveTo(float x,
                      float y)
Moves the current point to (x, y), omitting any connecting line segment.

Specified by:
moveTo in class AbstractPathOrientedRenderer
Parameters:
x - x coordinate
y - y coordinate

rmoveTo

protected void rmoveTo(float x,
                       float y)
Moves the current point by (x, y) relative to the current position, omitting any connecting line segment.

Parameters:
x - x coordinate
y - y coordinate

lineTo

protected void lineTo(float x,
                      float y)
Appends a straight line segment from the current point to (x, y). The new current point is (x, y).

Specified by:
lineTo in class AbstractPathOrientedRenderer
Parameters:
x - x coordinate
y - y coordinate

closePath

protected void closePath()
Closes the current subpath by appending a straight line segment from the current point to the starting point of the subpath.

Specified by:
closePath in class AbstractPathOrientedRenderer

fillRect

protected void fillRect(float x,
                        float y,
                        float width,
                        float height)
Fill a rectangular area.

Specified by:
fillRect in class AbstractPathOrientedRenderer
Parameters:
x - the x coordinate
y - the y coordinate
width - the width of the rectangle
height - the height of the rectangle

updateColor

protected void updateColor(java.awt.Color col,
                           boolean fill)
Establishes a new foreground or fill color.

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

drawImage

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

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

getFormForImage

protected org.apache.xmlgraphics.ps.PSResource getFormForImage(java.lang.String uri)
Returns a PSResource instance representing a image as a PostScript form.

Parameters:
uri - the image URI
Returns:
a PSResource instance

paintImage

public void paintImage(java.awt.image.RenderedImage image,
                       RendererContext context,
                       int x,
                       int y,
                       int width,
                       int height)
                throws java.io.IOException
Paints an image at the given position.

Specified by:
paintImage in interface ImageAdapter
Parameters:
image - the image which will be painted
context - the renderer context for the current renderer
x - X position of the image (in millipoints)
y - Y position of the image (in millipoints)
width - width of the image (in millipoints)
height - height of the image (in millipoints)
Throws:
java.io.IOException - In case of an I/O error while writing the output format

saveGraphicsState

public void saveGraphicsState()
Saves the graphics state of the rendering engine.

Specified by:
saveGraphicsState in class AbstractPathOrientedRenderer

restoreGraphicsState

public void restoreGraphicsState()
Restores the last graphics state of the rendering engine.

Specified by:
restoreGraphicsState in class AbstractPathOrientedRenderer

concatMatrix

protected void concatMatrix(double a,
                            double b,
                            double c,
                            double d,
                            double e,
                            double f)
Concats the transformation matrix.

Parameters:
a - A part
b - B part
c - C part
d - D part
e - E part
f - F part

concatMatrix

protected void concatMatrix(double[] matrix)
Concats the transformations matrix.

Parameters:
matrix - Matrix to use

concatenateTransformationMatrix

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

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

getPSResourceForFontKey

protected org.apache.xmlgraphics.ps.PSResource getPSResourceForFontKey(java.lang.String key)
Returns the PSResource for the given font key.

Parameters:
key - the font key ("F*")
Returns:
the matching PSResource

useFont

protected void useFont(java.lang.String key,
                       int size)
Changes the currently used font.

Parameters:
key - key of the font ("F*")
size - font size

drawBackAndBorders

protected void drawBackAndBorders(Area area,
                                  float startx,
                                  float starty,
                                  float width,
                                  float height)
Draw the background and borders. This draws the background and border traits for an area given the position.

Overrides:
drawBackAndBorders in class AbstractPathOrientedRenderer
Parameters:
area - the area to get the traits from
startx - the start x position
starty - the start y position
width - the width of the area
height - the height of the area

drawBorderLine

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

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

startRenderer

public void startRenderer(java.io.OutputStream outputStream)
                   throws java.io.IOException
Initiates the rendering phase. This must only be called once for a rendering. If stopRenderer is called then this may be called again for a new document rendering.

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

stopRenderer

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

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

processOffDocumentItem

public void processOffDocumentItem(OffDocumentItem oDI)
Tells the renderer to process an item not explicitly placed on the document (e.g., PDF bookmarks). Note - not all renderers will process all off-document items.

Specified by:
processOffDocumentItem in interface Renderer
Overrides:
processOffDocumentItem in class AbstractRenderer
Parameters:
oDI - The off-document item to be rendered

renderPage

public void renderPage(PageViewport page)
                throws java.io.IOException,
                       FOPException
Tells the renderer to render a particular page. A renderer typically reponds by packing up the current page and writing it immediately to the output device.

Specified by:
renderPage in interface Renderer
Overrides:
renderPage in class AbstractRenderer
Parameters:
page - The page to be rendered
Throws:
java.io.IOException - if an I/O error occurs
FOPException - if a FOP interal error occurs.

renderRegionViewport

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

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

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

beginTextObject

protected void beginTextObject()
Indicates the beginning of a text object.

Specified by:
beginTextObject in class AbstractPathOrientedRenderer

endTextObject

protected void endTextObject()
Indicates the end of a text object.

Specified by:
endTextObject in class AbstractPathOrientedRenderer

renderText

public void renderText(TextArea area)
Render the given TextArea.

Overrides:
renderText in class AbstractRenderer
Parameters:
area - the text to render

renderWord

protected void renderWord(WordArea word)
Render the given WordArea.

Overrides:
renderWord in class AbstractRenderer
Parameters:
word - the word to render

renderSpace

protected void renderSpace(SpaceArea space)
Render the given SpaceArea.

Overrides:
renderSpace in class AbstractRenderer
Parameters:
space - the space to render

breakOutOfStateStack

protected java.util.List breakOutOfStateStack()
Breaks out of the state stack to handle fixed block-containers.

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

restoreStateStackAfterBreakOut

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

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

startVParea

protected void startVParea(CTM ctm,
                           java.awt.geom.Rectangle2D clippingRect)
Establishes a new viewport area.

Specified by:
startVParea in class AbstractRenderer
Parameters:
ctm - the coordinate transformation matrix to use
clippingRect - the clipping rectangle if the viewport should be clipping, null if no clipping is performed.

endVParea

protected void endVParea()
Signals exit from a viewport area. Subclasses can restore transformation matrices valid before the viewport area was started.

Specified by:
endVParea in class AbstractRenderer

renderBlockViewport

protected void renderBlockViewport(BlockViewport bv,
                                   java.util.List children)
Renders a block viewport.

Overrides:
renderBlockViewport in class AbstractPathOrientedRenderer
Parameters:
bv - The block viewport
children - The children to render within the block viewport

renderInlineParent

protected void renderInlineParent(InlineParent ip)
Render the given InlineParent.

Overrides:
renderInlineParent in class AbstractRenderer
Parameters:
ip - the inline parent to render

renderLeader

public void renderLeader(Leader area)
Render the given Leader.

Overrides:
renderLeader in class AbstractRenderer
Parameters:
area - the leader to render

renderImage

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

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

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 class PrintRenderer
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

getMimeType

public java.lang.String getMimeType()
Get the MIME type of the renderer.

Specified by:
getMimeType in interface Renderer
Returns:
The MIME type of the renderer, may return null if not applicable.

setSafeSetPageDevice

public void setSafeSetPageDevice(boolean safeSetPageDevice)
Sets whether or not the safe set page device macro should be used (as opposed to directly invoking setpagedevice) when setting the postscript page device. This option is a useful option when you want to guard against the possibility of invalid/unsupported postscript key/values being placed in the page device.

Parameters:
safeSetPageDevice - setting to false and the renderer will make a standard "setpagedevice" call, setting to true will make a safe set page device macro call (default is false).

setDSCCompliant

public void setDSCCompliant(boolean dscCompliant)
Sets whether or not PostScript Document Structuring Conventions (dsc) compliance are enforced.

It can cause problems (unwanted PostScript subsystem initgraphics/erasepage calls) on some printers when the pagedevice is set. If this causes problems on a particular implementation then use this setting with a 'false' value to try and minimize the number of setpagedevice calls in the postscript document output.

Set this value to false if you experience unwanted blank pages in your postscript output.

Parameters:
dscCompliant - boolean value (default is true)

fop 1.0

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