fop 0.93

org.apache.fop.render.pdf
Class PDFRenderer

java.lang.Object
  extended byorg.apache.fop.render.AbstractRenderer
      extended byorg.apache.fop.render.PrintRenderer
          extended byorg.apache.fop.render.AbstractPathOrientedRenderer
              extended byorg.apache.fop.render.pdf.PDFRenderer
All Implemented Interfaces:
org.apache.avalon.framework.configuration.Configurable, Constants, Renderer

public class PDFRenderer
extends AbstractPathOrientedRenderer

Renderer that renders areas to PDF.


Field Summary
protected  PDFResourceContext currentContext
          the current annotation list to add annotations to
protected  java.lang.String currentFontName
          Name of currently selected font
protected  int currentFontSize
          Size of currently selected font
protected  PDFPage currentPage
          the current page to add annotations to
protected  PDFState currentState
          drawing state
protected  PDFStream currentStream
          the current stream to add PDF commands to
static java.lang.String ENCRYPTION_PARAMS
          PDF encryption parameter: all parameters as object, datatype: PDFEncryptionParams
protected  PDFEncryptionParams encryptionParams
          the (optional) encryption parameters
protected  java.util.Map filterMap
          Registry of PDF filters
protected  boolean inTextMode
          true if a BT command has been written.
static java.lang.String KEY_OUTPUT_PROFILE
          Rendering Options key for the ICC profile for the output intent.
static java.lang.String MIME_TYPE
          The mime type for pdf
static java.lang.String NO_ANNOTATIONS
          PDF encryption parameter: Forbids annotations, datatype: Boolean or "true"/"false"
static java.lang.String NO_COPY_CONTENT
          PDF encryption parameter: Forbids copying content, datatype: Boolean or "true"/"false"
static java.lang.String NO_EDIT_CONTENT
          PDF encryption parameter: Forbids editing content, datatype: Boolean or "true"/"false"
static java.lang.String NO_PRINT
          PDF encryption parameter: Forbids printing, datatype: Boolean or "true"/"false"
static int NORMAL_PDF_RESOLUTION
          Normal PDF resolution (72dpi)
protected  java.io.OutputStream ostream
          The output stream to write the document to
protected  PDFICCStream outputProfile
          the ICC stream used as output profile by this document for PDF/A and PDF/X functionality.
protected  java.lang.String outputProfileURI
          Optional URI to an output profile to be used.
static java.lang.String OWNER_PASSWORD
          PDF encryption parameter: owner password, datatype: String
protected  int pageHeight
          page height
protected  java.util.Map pageReferences
          Page references are stored using the PageViewport as the key when a reference is made the PageViewport is used for pdf this means we need the pdf page reference
protected  java.util.Map pages
          Map of pages using the PageViewport as the key this is used for prepared pages that cannot be immediately rendered
static java.lang.String PDF_A_MODE
          Rendering Options key for the PDF/A mode.
static java.lang.String PDF_X_MODE
          Rendering Options key for the PDF/X mode.
protected  PDFAMode pdfAMode
          the PDF/A mode (Default: disabled)
protected  PDFDocument pdfDoc
          the PDF Document being created
protected  PDFResources pdfResources
          the /Resources object of the PDF document being created
protected  PDFXMode pdfXMode
          the PDF/X mode (Default: disabled)
protected  java.util.Map pvReferences
          Page viewport references
protected  PDFICCBasedColorSpace sRGBColorSpace
          the default sRGB color space.
static java.lang.String USER_PASSWORD
          PDF encryption parameter: user password, datatype: String
protected static boolean WRITE_COMMENTS
          Controls whether comments are written to the PDF stream.
 
Fields inherited from class org.apache.fop.render.PrintRenderer
fontInfo, fontList
 
Fields inherited from class org.apache.fop.render.AbstractRenderer
containingBPPosition, containingIPPosition, currentBPPosition, currentIPPosition, currentPageViewport, log, userAgent
 
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_ALWAYS, EN_ANY, EN_AUTO, EN_AUTO_EVEN, EN_AUTO_ODD, EN_AVOID, EN_BACKSLANT, EN_BASELINE, EN_BEFORE, EN_BEFORE_EDGE, EN_BIDI_OVERRIDE, EN_BLANK, EN_BLINK, EN_BLOCK, EN_BOLDER, EN_BOTH, EN_BOTTOM, EN_BOUNDED_IN_ONE_DIMENSION, EN_CAPITALIZE, EN_CAPTION, EN_CENTER, EN_CENTRAL, EN_CHARACTER_BY_CHARACTER, EN_COLLAPSE, EN_COLLAPSE_WITH_PRECEDENCE, EN_COLUMN, EN_CONDENSED, EN_CONSIDER_SHIFTS, EN_DASHED, EN_DISCARD, EN_DISREGARD_SHIFTS, EN_DOCUMENT, EN_DOTS, EN_DOTTED, EN_DOUBLE, EN_EMBED, EN_END, EN_END_ON_EVEN, EN_END_ON_ODD, EN_ERROR_IF_OVERFLOW, EN_EVEN, EN_EVEN_PAGE, EN_EXPANDED, EN_EXTRA_CONDENSED, EN_EXTRA_EXPANDED, EN_FALSE, EN_FIC, EN_FIRST, EN_FIXED, EN_FONT_HEIGHT, EN_FORCE, EN_FSWP, EN_GROOVE, EN_HANGING, EN_HIDDEN, EN_HIDE, EN_ICON, EN_IDEOGRAPHIC, EN_IGNORE, EN_IGNORE_IF_AFTER_LINEFEED, EN_IGNORE_IF_BEFORE_LINEFEED, EN_IGNORE_IF_SURROUNDING_LINEFEED, EN_INDEFINITE, EN_INDENT, EN_INHERIT, EN_INSET, EN_INSIDE, EN_INTEGER_PIXELS, EN_ITALIC, EN_JUSTIFY, EN_LARGER, EN_LAST, EN_LEFT, EN_LEWP, EN_LIGHTER, EN_LINE, EN_LINE_HEIGHT, EN_LINE_THROUGH, EN_LOWERCASE, EN_LR_TB, EN_LSWP, EN_LTR, EN_MATHEMATICAL, EN_MAX_HEIGHT, EN_MENU, EN_MESSAGE_BOX, EN_MIDDLE, EN_NARROWER, EN_NO_BLINK, EN_NO_CHANGE, EN_NO_FORCE, EN_NO_LIMIT, EN_NO_LINE_THROUGH, EN_NO_OVERLINE, EN_NO_UNDERLINE, EN_NO_WRAP, EN_NON_UNIFORM, EN_NONE, EN_NOREPEAT, EN_NORMAL, EN_NOT_BLANK, EN_OBLIQUE, EN_ODD, EN_ODD_PAGE, EN_OUTSET, EN_OUTSIDE, EN_OVERLINE, EN_PAGE, EN_PAGE_SEQUENCE, EN_PAGINATE, EN_PERCEPTUAL, EN_PRE, EN_PRESERVE, EN_REFERENCE_AREA, EN_RELATIVE, EN_RELATIVE_COLOMETRIC, EN_REPEAT, EN_REPEATX, EN_REPEATY, EN_RESAMPLE_ANY_METHOD, EN_RESET_SIZE, EN_REST, EN_RETAIN, EN_RIDGE, EN_RIGHT, EN_RL_TB, EN_RTL, EN_RULE, EN_SATURATION, EN_SCALE_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_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_CHARACTER, FO_COLOR_PROFILE, FO_CONDITIONAL_PAGE_MASTER_REFERENCE, FO_DECLARATIONS, FO_EXTERNAL_GRAPHIC, FO_FLOAT, FO_FLOW, FO_FOOTNOTE, FO_FOOTNOTE_BODY, FO_INITIAL_PROPERTY_SET, FO_INLINE, FO_INLINE_CONTAINER, FO_INSTREAM_FOREIGN_OBJECT, FO_LAYOUT_MASTER_SET, FO_LEADER, FO_LIST_BLOCK, FO_LIST_ITEM, FO_LIST_ITEM_BODY, FO_LIST_ITEM_LABEL, FO_MARKER, FO_MULTI_CASE, FO_MULTI_PROPERTIES, FO_MULTI_PROPERTY_SET, FO_MULTI_SWITCH, FO_MULTI_TOGGLE, FO_PAGE_NUMBER, FO_PAGE_NUMBER_CITATION, FO_PAGE_NUMBER_CITATION_LAST, FO_PAGE_SEQUENCE, FO_PAGE_SEQUENCE_MASTER, FO_PAGE_SEQUENCE_WRAPPER, FO_REGION_AFTER, FO_REGION_BEFORE, FO_REGION_BODY, FO_REGION_END, FO_REGION_START, FO_REPEATABLE_PAGE_MASTER_ALTERNATIVES, FO_REPEATABLE_PAGE_MASTER_REFERENCE, FO_RETRIEVE_MARKER, FO_ROOT, FO_SIMPLE_PAGE_MASTER, FO_SINGLE_PAGE_MASTER_REFERENCE, FO_STATIC_CONTENT, FO_TABLE, FO_TABLE_AND_CAPTION, FO_TABLE_BODY, FO_TABLE_CAPTION, FO_TABLE_CELL, FO_TABLE_COLUMN, FO_TABLE_FOOTER, FO_TABLE_HEADER, FO_TABLE_ROW, FO_TITLE, FO_UNKNOWN_NODE, FO_WRAPPER, FRM_OBJ_COUNT, NOT_SET, PR_ABSOLUTE_POSITION, PR_ACTIVE_STATE, PR_ALIGNMENT_ADJUST, PR_ALIGNMENT_BASELINE, PR_AUTO_RESTORE, PR_AZIMUTH, PR_BACKGROUND, PR_BACKGROUND_ATTACHMENT, PR_BACKGROUND_COLOR, PR_BACKGROUND_IMAGE, PR_BACKGROUND_POSITION, PR_BACKGROUND_POSITION_HORIZONTAL, PR_BACKGROUND_POSITION_VERTICAL, PR_BACKGROUND_REPEAT, PR_BASELINE_SHIFT, PR_BLANK_OR_NOT_BLANK, PR_BLOCK_PROGRESSION_DIMENSION, PR_BORDER, PR_BORDER_AFTER_COLOR, PR_BORDER_AFTER_PRECEDENCE, PR_BORDER_AFTER_STYLE, PR_BORDER_AFTER_WIDTH, PR_BORDER_BEFORE_COLOR, PR_BORDER_BEFORE_PRECEDENCE, PR_BORDER_BEFORE_STYLE, PR_BORDER_BEFORE_WIDTH, PR_BORDER_BOTTOM, PR_BORDER_BOTTOM_COLOR, PR_BORDER_BOTTOM_STYLE, PR_BORDER_BOTTOM_WIDTH, PR_BORDER_COLLAPSE, PR_BORDER_COLOR, PR_BORDER_END_COLOR, PR_BORDER_END_PRECEDENCE, PR_BORDER_END_STYLE, PR_BORDER_END_WIDTH, PR_BORDER_LEFT, PR_BORDER_LEFT_COLOR, PR_BORDER_LEFT_STYLE, PR_BORDER_LEFT_WIDTH, PR_BORDER_RIGHT, PR_BORDER_RIGHT_COLOR, PR_BORDER_RIGHT_STYLE, PR_BORDER_RIGHT_WIDTH, PR_BORDER_SEPARATION, PR_BORDER_SPACING, PR_BORDER_START_COLOR, PR_BORDER_START_PRECEDENCE, PR_BORDER_START_STYLE, PR_BORDER_START_WIDTH, PR_BORDER_STYLE, PR_BORDER_TOP, PR_BORDER_TOP_COLOR, PR_BORDER_TOP_STYLE, PR_BORDER_TOP_WIDTH, PR_BORDER_WIDTH, PR_BOTTOM, PR_BREAK_AFTER, PR_BREAK_BEFORE, PR_CAPTION_SIDE, PR_CASE_NAME, PR_CASE_TITLE, PR_CHARACTER, PR_CLEAR, PR_CLIP, PR_COLOR, PR_COLOR_PROFILE_NAME, PR_COLUMN_COUNT, PR_COLUMN_GAP, PR_COLUMN_NUMBER, PR_COLUMN_WIDTH, PR_CONTENT_HEIGHT, PR_CONTENT_TYPE, PR_CONTENT_WIDTH, PR_COUNTRY, PR_CUE, PR_CUE_AFTER, PR_CUE_BEFORE, PR_DESTINATION_PLACEMENT_OFFSET, PR_DIRECTION, PR_DISPLAY_ALIGN, PR_DOMINANT_BASELINE, PR_ELEVATION, PR_EMPTY_CELLS, PR_END_INDENT, PR_ENDS_ROW, PR_EXTENT, PR_EXTERNAL_DESTINATION, PR_FLOAT, PR_FLOW_NAME, PR_FONT, PR_FONT_FAMILY, PR_FONT_SELECTION_STRATEGY, PR_FONT_SIZE, PR_FONT_SIZE_ADJUST, PR_FONT_STRETCH, PR_FONT_STYLE, PR_FONT_VARIANT, PR_FONT_WEIGHT, PR_FORCE_PAGE_COUNT, PR_FORMAT, PR_GLYPH_ORIENTATION_HORIZONTAL, PR_GLYPH_ORIENTATION_VERTICAL, PR_GROUPING_SEPARATOR, PR_GROUPING_SIZE, PR_HEIGHT, PR_HYPHENATE, PR_HYPHENATION_CHARACTER, PR_HYPHENATION_KEEP, PR_HYPHENATION_LADDER_COUNT, PR_HYPHENATION_PUSH_CHARACTER_COUNT, PR_HYPHENATION_REMAIN_CHARACTER_COUNT, PR_ID, PR_INDEX_CLASS, PR_INDEX_KEY, PR_INDICATE_DESTINATION, PR_INITIAL_PAGE_NUMBER, PR_INLINE_PROGRESSION_DIMENSION, PR_INTERNAL_DESTINATION, PR_INTRUSION_DISPLACE, PR_KEEP_TOGETHER, PR_KEEP_WITH_NEXT, PR_KEEP_WITH_PREVIOUS, PR_LANGUAGE, PR_LAST_LINE_END_INDENT, PR_LEADER_ALIGNMENT, PR_LEADER_LENGTH, PR_LEADER_PATTERN, PR_LEADER_PATTERN_WIDTH, PR_LEFT, PR_LETTER_SPACING, PR_LETTER_VALUE, PR_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_MIN_HEIGHT, PR_MIN_WIDTH, PR_NUMBER_COLUMNS_REPEATED, PR_NUMBER_COLUMNS_SPANNED, PR_NUMBER_ROWS_SPANNED, PR_ODD_OR_EVEN, PR_ORPHANS, PR_OVERFLOW, PR_PADDING, PR_PADDING_AFTER, PR_PADDING_BEFORE, PR_PADDING_BOTTOM, PR_PADDING_END, PR_PADDING_LEFT, PR_PADDING_RIGHT, PR_PADDING_START, PR_PADDING_TOP, PR_PAGE_BREAK_AFTER, PR_PAGE_BREAK_BEFORE, PR_PAGE_BREAK_INSIDE, PR_PAGE_HEIGHT, PR_PAGE_POSITION, PR_PAGE_WIDTH, PR_PAUSE, PR_PAUSE_AFTER, PR_PAUSE_BEFORE, PR_PITCH, PR_PITCH_RANGE, PR_PLAY_DURING, PR_POSITION, PR_PRECEDENCE, PR_PROVISIONAL_DISTANCE_BETWEEN_STARTS, PR_PROVISIONAL_LABEL_SEPARATION, PR_REF_ID, PR_REFERENCE_ORIENTATION, PR_REGION_NAME, PR_RELATIVE_ALIGN, PR_RELATIVE_POSITION, PR_RENDERING_INTENT, PR_RETRIEVE_BOUNDARY, PR_RETRIEVE_CLASS_NAME, PR_RETRIEVE_POSITION, PR_RICHNESS, PR_RIGHT, PR_ROLE, PR_RULE_STYLE, PR_RULE_THICKNESS, PR_SCALING, PR_SCALING_METHOD, PR_SCORE_SPACES, PR_SCRIPT, PR_SHOW_DESTINATION, PR_SIZE, PR_SOURCE_DOCUMENT, PR_SPACE_AFTER, PR_SPACE_BEFORE, PR_SPACE_END, PR_SPACE_START, PR_SPAN, PR_SPEAK, PR_SPEAK_HEADER, PR_SPEAK_NUMERAL, PR_SPEAK_PUNCTUATION, PR_SPEECH_RATE, PR_SRC, PR_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_BLOCK_PROGRESSION_UNIT, PR_X_ORPHAN_CONTENT_LIMIT, PR_X_WIDOW_CONTENT_LIMIT, PR_XML_LANG, PR_Z_INDEX, PROPERTY_COUNT, PROPERTY_MASK
 
Constructor Summary
PDFRenderer()
          create the PDF renderer
 
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 an area.
protected  void clipRect(float x, float y, float width, float height)
          Clip 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 closeText()
          Checks to see if we have some text rendering commands open still and writes out the TJ command to the stream if we do
protected  void comment(java.lang.String text)
          writes out a comment.
 void configure(org.apache.avalon.framework.configuration.Configuration cfg)
          Configure the PDF renderer.
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.
protected  void drawImage(java.lang.String url, 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.
 void escapeText(java.lang.String s, int[] letterAdjust, Font fs, AbstractTextArea parentArea, boolean useMultiByte, java.lang.StringBuffer pdf)
          Escapes text according to PDF rules.
protected  void fillRect(float x, float y, float w, float h)
          Fill a rectangular area.
protected static java.lang.String format(float value)
          Formats a float value (normally coordinates) as Strings.
 Graphics2DAdapter getGraphics2DAdapter()
           
 java.lang.String getMimeType()
          Get the MIME type of the renderer.
protected  void handleRegionTraits(RegionViewport region)
          Handle the traits for a region This is used to draw the traits for the given page region.
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 placeImage(float x, float y, float w, float h, int xobj)
          Places a previously registered image at a certain place on the page.
 void preparePage(PageViewport page)
          The pdf page is prepared by making the page.
 void processOffDocumentItem(OffDocumentItem odi)
          Tells the renderer to process an item not explicitly placed on the document (e.g., PDF bookmarks).
protected  void putImage(java.lang.String url, java.awt.geom.Rectangle2D pos)
          Adds a PDF XObject (a bitmap) to the PDF that will later be referenced.
protected  void renderBookmarkTree(BookmarkData bookmarks)
          Renders a Bookmark-Tree object
 void renderImage(Image image, java.awt.geom.Rectangle2D pos)
          Renders an image area.
 void renderInlineParent(InlineParent ip)
          Render inline parent area.
 void renderLeader(Leader area)
          Render leader area.
protected  void renderLineArea(LineArea line)
          Renders a line area.
 void renderPage(PageViewport page)
          This method creates a pdf stream for the current page uses it as the contents of a new page.
 void renderSpace(SpaceArea space)
          Render the given SpaceArea.
 void renderText(TextArea text)
          Render the given TextArea.
 void renderWord(WordArea word)
          Render the given WordArea.
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.
protected  void setColor(java.awt.Color col, boolean fill, java.lang.StringBuffer pdf)
          Establishes a new foreground or fill color.
 void setUserAgent(FOUserAgent agent)
          Set the User Agent.
 void startPageSequence(LineArea seqTitle)
          Start the next page sequence.
 void startRenderer(java.io.OutputStream stream)
          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.
 boolean supportsOutOfOrder()
          Check if this renderer supports out of order rendering.
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
drawBackAndBorders, drawBorders, drawImage, handleBlockTraits, renderBlockViewport, renderForeignObject, renderInlineAreaBackAndBorders, renderTextDecoration, renderViewport
 
Methods inherited from class org.apache.fop.render.PrintRenderer
getFontFromArea, getInternalFontNameForArea, lightenColor, renderDocument, setupFontInfo
 
Methods inherited from class org.apache.fop.render.AbstractRenderer
convertTitleToString, getCurrentPageViewport, getHandlerConfig, getImageAdapter, renderBeforeFloat, renderBlock, renderBlocks, renderBodyRegion, renderCharacter, renderContainer, renderFlow, renderFootnote, renderInlineArea, renderInlineBlockParent, renderInlineSpace, renderMainReference, renderPageAreas, renderRegion, renderRegionViewport, renderXML
 
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 pdf

See Also:
Constant Field Values

NORMAL_PDF_RESOLUTION

public static final int NORMAL_PDF_RESOLUTION
Normal PDF resolution (72dpi)

See Also:
Constant Field Values

ENCRYPTION_PARAMS

public static final java.lang.String ENCRYPTION_PARAMS
PDF encryption parameter: all parameters as object, datatype: PDFEncryptionParams

See Also:
Constant Field Values

USER_PASSWORD

public static final java.lang.String USER_PASSWORD
PDF encryption parameter: user password, datatype: String

See Also:
Constant Field Values

OWNER_PASSWORD

public static final java.lang.String OWNER_PASSWORD
PDF encryption parameter: owner password, datatype: String

See Also:
Constant Field Values

NO_PRINT

public static final java.lang.String NO_PRINT
PDF encryption parameter: Forbids printing, datatype: Boolean or "true"/"false"

See Also:
Constant Field Values

NO_COPY_CONTENT

public static final java.lang.String NO_COPY_CONTENT
PDF encryption parameter: Forbids copying content, datatype: Boolean or "true"/"false"

See Also:
Constant Field Values

NO_EDIT_CONTENT

public static final java.lang.String NO_EDIT_CONTENT
PDF encryption parameter: Forbids editing content, datatype: Boolean or "true"/"false"

See Also:
Constant Field Values

NO_ANNOTATIONS

public static final java.lang.String NO_ANNOTATIONS
PDF encryption parameter: Forbids annotations, datatype: Boolean or "true"/"false"

See Also:
Constant Field Values

PDF_A_MODE

public static final java.lang.String PDF_A_MODE
Rendering Options key for the PDF/A mode.

See Also:
Constant Field Values

PDF_X_MODE

public static final java.lang.String PDF_X_MODE
Rendering Options key for the PDF/X mode.

See Also:
Constant Field Values

KEY_OUTPUT_PROFILE

public static final java.lang.String KEY_OUTPUT_PROFILE
Rendering Options key for the ICC profile for the output intent.

See Also:
Constant Field Values

WRITE_COMMENTS

protected static final boolean WRITE_COMMENTS
Controls whether comments are written to the PDF stream.

See Also:
Constant Field Values

pdfDoc

protected PDFDocument pdfDoc
the PDF Document being created


pdfAMode

protected PDFAMode pdfAMode
the PDF/A mode (Default: disabled)


pdfXMode

protected PDFXMode pdfXMode
the PDF/X mode (Default: disabled)


pages

protected java.util.Map pages
Map of pages using the PageViewport as the key this is used for prepared pages that cannot be immediately rendered


pageReferences

protected java.util.Map pageReferences
Page references are stored using the PageViewport as the key when a reference is made the PageViewport is used for pdf this means we need the pdf page reference


pvReferences

protected java.util.Map pvReferences
Page viewport references


ostream

protected java.io.OutputStream ostream
The output stream to write the document to


pdfResources

protected PDFResources pdfResources
the /Resources object of the PDF document being created


currentStream

protected PDFStream currentStream
the current stream to add PDF commands to


currentContext

protected PDFResourceContext currentContext
the current annotation list to add annotations to


currentPage

protected PDFPage currentPage
the current page to add annotations to


encryptionParams

protected PDFEncryptionParams encryptionParams
the (optional) encryption parameters


outputProfile

protected PDFICCStream outputProfile
the ICC stream used as output profile by this document for PDF/A and PDF/X functionality.


sRGBColorSpace

protected PDFICCBasedColorSpace sRGBColorSpace
the default sRGB color space.


outputProfileURI

protected java.lang.String outputProfileURI
Optional URI to an output profile to be used.


currentState

protected PDFState currentState
drawing state


currentFontName

protected java.lang.String currentFontName
Name of currently selected font


currentFontSize

protected int currentFontSize
Size of currently selected font


pageHeight

protected int pageHeight
page height


filterMap

protected java.util.Map filterMap
Registry of PDF filters


inTextMode

protected boolean inTextMode
true if a BT command has been written.

Constructor Detail

PDFRenderer

public PDFRenderer()
create the PDF renderer

Method Detail

configure

public void configure(org.apache.avalon.framework.configuration.Configuration cfg)
               throws org.apache.avalon.framework.configuration.ConfigurationException
Configure the PDF renderer. Get the configuration to be used for pdf stream filters, fonts etc.

Specified by:
configure in interface org.apache.avalon.framework.configuration.Configurable
Overrides:
configure in class AbstractRenderer
Throws:
org.apache.avalon.framework.configuration.ConfigurationException
See Also:
Configurable.configure(Configuration)

setUserAgent

public void setUserAgent(FOUserAgent agent)
Description copied from interface: Renderer
Set the User Agent.

Specified by:
setUserAgent in interface Renderer
Overrides:
setUserAgent in class AbstractRenderer
See Also:
Renderer.setUserAgent(FOUserAgent)

startRenderer

public void startRenderer(java.io.OutputStream stream)
                   throws java.io.IOException
Description copied from interface: Renderer
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
Throws:
java.io.IOException
See Also:
Renderer.startRenderer(OutputStream)

stopRenderer

public void stopRenderer()
                  throws java.io.IOException
Description copied from interface: Renderer
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
See Also:
Renderer.stopRenderer()

supportsOutOfOrder

public boolean supportsOutOfOrder()
Description copied from class: AbstractRenderer
Check if this renderer supports out of order rendering. If this renderer supports out of order rendering then it means that the pages that are not ready will be prepared and a future page will be rendered.

Specified by:
supportsOutOfOrder in interface Renderer
Overrides:
supportsOutOfOrder in class AbstractRenderer
Returns:
True if the renderer supports out of order rendering
See Also:
Renderer.supportsOutOfOrder()

processOffDocumentItem

public void processOffDocumentItem(OffDocumentItem odi)
Description copied from interface: Renderer
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
See Also:
Renderer.processOffDocumentItem(OffDocumentItem)

renderBookmarkTree

protected void renderBookmarkTree(BookmarkData bookmarks)
Renders a Bookmark-Tree object

Parameters:
bookmarks - the BookmarkData object containing all the Bookmark-Items

getGraphics2DAdapter

public Graphics2DAdapter getGraphics2DAdapter()
Specified by:
getGraphics2DAdapter in interface Renderer
Overrides:
getGraphics2DAdapter in class AbstractRenderer
See Also:
Renderer.getGraphics2DAdapter()

comment

protected void comment(java.lang.String text)
writes out a comment.

Parameters:
text - text for the comment

saveGraphicsState

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

Specified by:
saveGraphicsState in class AbstractPathOrientedRenderer

restoreGraphicsState

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

Specified by:
restoreGraphicsState in class AbstractPathOrientedRenderer

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

startPageSequence

public void startPageSequence(LineArea seqTitle)
Start the next page sequence. For the pdf renderer there is no concept of page sequences but it uses the first available page sequence title to set as the title of the pdf document.

Specified by:
startPageSequence in interface Renderer
Overrides:
startPageSequence in class AbstractRenderer
Parameters:
seqTitle - the title of the page sequence
See Also:
Renderer.startPageSequence(LineArea)

preparePage

public void preparePage(PageViewport page)
The pdf page is prepared by making the page. The page is made in the pdf document without any contents and then stored to add the contents later. The page objects is stored using the area tree PageViewport as a key.

Specified by:
preparePage in interface Renderer
Overrides:
preparePage in class AbstractRenderer
Parameters:
page - the page to prepare
See Also:
Renderer.preparePage(PageViewport)

renderPage

public void renderPage(PageViewport page)
                throws java.io.IOException,
                       FOPException
This method creates a pdf stream for the current page uses it as the contents of a new page. The page is written immediately to the output stream.

Specified by:
renderPage in interface Renderer
Overrides:
renderPage in class AbstractRenderer
Throws:
java.io.IOException
FOPException
See Also:
Renderer.renderPage(PageViewport)

startVParea

protected void startVParea(CTM ctm,
                           java.awt.geom.Rectangle2D clippingRect)
Description copied from class: AbstractRenderer
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.
See Also:
AbstractRenderer.startVParea(CTM, Rectangle2D)

endVParea

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

Specified by:
endVParea in class AbstractRenderer
See Also:
AbstractRenderer.endVParea()

handleRegionTraits

protected void handleRegionTraits(RegionViewport region)
Handle the traits for a region This is used to draw the traits for the given page region. (See Sect. 6.4.1.2 of XSL-FO spec.)

Overrides:
handleRegionTraits in class AbstractPathOrientedRenderer
Parameters:
region - the RegionViewport whose region is to be drawn

format

protected static final java.lang.String format(float value)
Formats a float value (normally coordinates) as Strings.

Parameters:
value - the value
Returns:
the formatted value

drawBorderLine

protected void drawBorderLine(float x1,
                              float y1,
                              float x2,
                              float y2,
                              boolean horz,
                              boolean startOrBefore,
                              int style,
                              java.awt.Color col)
Description copied from class: AbstractPathOrientedRenderer
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
See Also:
AbstractPathOrientedRenderer

clipRect

protected void clipRect(float x,
                        float y,
                        float width,
                        float height)
Clip a rectangular area. write a clipping operation given coordinates in the current transform.

Specified by:
clipRect in class AbstractPathOrientedRenderer
Parameters:
x - the x coordinate
y - the y coordinate
width - the width of the area
height - the height of the area

clip

protected void clip()
Clip an area.

Specified by:
clip in class AbstractPathOrientedRenderer

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

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 w,
                        float h)
Description copied from class: AbstractPathOrientedRenderer
Fill a rectangular area.

Specified by:
fillRect in class AbstractPathOrientedRenderer
Parameters:
x - the x coordinate
y - the y coordinate
w - the width of the rectangle
h - the height of the rectangle
See Also:
AbstractPathOrientedRenderer.fillRect(float, float, float, float)

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.

renderLineArea

protected void renderLineArea(LineArea line)
Description copied from class: AbstractRenderer
Renders a line area.

A line area may have grouped styling for its children such as underline, background.

Overrides:
renderLineArea in class AbstractRenderer
Parameters:
line - The line area
See Also:
AbstractRenderer.renderLineArea(LineArea)

renderInlineParent

public void renderInlineParent(InlineParent ip)
Render inline parent area. For pdf this handles the inline parent area traits such as links, border, background.

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

renderText

public void renderText(TextArea text)
Description copied from class: AbstractRenderer
Render the given TextArea.

Overrides:
renderText in class AbstractRenderer
Parameters:
text - the text to render
See Also:
AbstractRenderer.renderText(TextArea)

renderWord

public void renderWord(WordArea word)
Description copied from class: AbstractRenderer
Render the given WordArea.

Overrides:
renderWord in class AbstractRenderer
Parameters:
word - the word to render
See Also:
AbstractRenderer.renderWord(WordArea)

renderSpace

public void renderSpace(SpaceArea space)
Description copied from class: AbstractRenderer
Render the given SpaceArea.

Overrides:
renderSpace in class AbstractRenderer
Parameters:
space - the space to render
See Also:
AbstractRenderer.renderSpace(SpaceArea)

escapeText

public void escapeText(java.lang.String s,
                       int[] letterAdjust,
                       Font fs,
                       AbstractTextArea parentArea,
                       boolean useMultiByte,
                       java.lang.StringBuffer pdf)
Escapes text according to PDF rules.

Parameters:
s - Text to escape
letterAdjust - an array of widths for letter adjustment (may be null)
fs - Font state
parentArea - the parent text area to retrieve certain traits from
useMultiByte - Indicates the use of multi byte convention
pdf - target buffer for the escaped text

closeText

protected void closeText()
Checks to see if we have some text rendering commands open still and writes out the TJ command to the stream if we do


setColor

protected void setColor(java.awt.Color col,
                        boolean fill,
                        java.lang.StringBuffer pdf)
Establishes a new foreground or fill color. In contrast to updateColor this method does not check the PDFState for optimization possibilities.

Parameters:
col - the color to apply
fill - true to set the fill color, false for the foreground color
pdf - StringBuffer to write the PDF code to, if null, the code is written to the current stream.

updateColor

protected void updateColor(java.awt.Color col,
                           boolean fill)
Description copied from class: AbstractPathOrientedRenderer
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
See Also:
AbstractPathOrientedRenderer

renderImage

public void renderImage(Image image,
                        java.awt.geom.Rectangle2D pos)
Description copied from class: AbstractRenderer
Renders an image area.

Overrides:
renderImage in class AbstractRenderer
Parameters:
image - The image
pos - The target position of the image (todo) Make renderImage() protected
See Also:
AbstractRenderer.renderImage(Image, Rectangle2D)

drawImage

protected void drawImage(java.lang.String url,
                         java.awt.geom.Rectangle2D pos,
                         java.util.Map foreignAttributes)
Description copied from class: AbstractPathOrientedRenderer
Draw an image at the indicated location.

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

putImage

protected void putImage(java.lang.String url,
                        java.awt.geom.Rectangle2D pos)
Adds a PDF XObject (a bitmap) to the PDF that will later be referenced.

Parameters:
url - URL of the bitmap
pos - Position of the bitmap

placeImage

protected void placeImage(float x,
                          float y,
                          float w,
                          float h,
                          int xobj)
Places a previously registered image at a certain place on the page.

Parameters:
x - X coordinate
y - Y coordinate
w - width for image
h - height for image
xobj - object number of the referenced image

createRendererContext

protected RendererContext createRendererContext(int x,
                                                int y,
                                                int width,
                                                int height,
                                                java.util.Map foreignAttributes)
Description copied from class: PrintRenderer
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
See Also:
PrintRenderer.createRendererContext( int, int, int, int, java.util.Map)

renderLeader

public void renderLeader(Leader area)
Render leader area. This renders a leader area which is an area with a rule.

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

getMimeType

public java.lang.String getMimeType()
Description copied from class: AbstractRenderer
Get the MIME type of the renderer.

Specified by:
getMimeType in interface Renderer
Overrides:
getMimeType in class AbstractRenderer
Returns:
The MIME type of the renderer
See Also:
AbstractRenderer

fop 0.93

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