fop 1.0

org.apache.fop.render.pdf
Class PDFRenderer

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.pdf.PDFRenderer
All Implemented Interfaces:
Constants, PDFConfigurationConstants, Renderer

public class PDFRenderer
extends AbstractPathOrientedRenderer
implements PDFConfigurationConstants

Renderer that renders areas to PDF.


Field Summary
protected  PDFResourceContext currentContext
          the current annotation list to add annotations to
protected  PDFPage currentPage
          the current page to add annotations to
protected  java.lang.String currentPageRef
          the current page's PDF reference string (to avoid numerous function calls)
protected  PDFContentGenerator generator
          The current content generator to produce PDF commands with
protected  java.util.Map idGoTos
          Maps XSL-FO element IDs to PDFGoTo objects targeting the corresponding areas These objects may not all be fully filled in yet
protected  java.util.Map idPositions
          Maps XSL-FO element IDs to their on-page XY-positions Must be used in conjunction with the page reference to fully specify the PDFGoTo details
static java.lang.String MIME_TYPE
          The MIME type for PDF
static int NORMAL_PDF_RESOLUTION
          Normal PDF resolution (72dpi)
protected  java.io.OutputStream ostream
          The output stream to write the document to
protected  int pageHeight
          page height
protected  java.util.Map pageReferences
          Maps unique PageViewport key to PDF page reference
protected  PDFDocument pdfDoc
          the PDF Document being created
protected  PDFResources pdfResources
          the /Resources object of the PDF document being created
protected  org.apache.fop.render.pdf.PDFRenderingUtil pdfUtil
          Utility class which enables all sorts of features that are not directly connected to the normal rendering process.
protected  java.util.List unfinishedGoTos
          The PDFGoTos in idGoTos that are not complete yet
protected static boolean WRITE_COMMENTS
          Controls whether comments are written to the PDF stream.
 
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, log, userAgent
 
Fields inherited from interface org.apache.fop.render.pdf.PDFConfigurationConstants
ENCRYPTION_PARAMS, KEY_DISABLE_SRGB_COLORSPACE, KEY_OUTPUT_PROFILE, NO_ANNOTATIONS, NO_COPY_CONTENT, NO_EDIT_CONTENT, NO_PRINT, OWNER_PASSWORD, PDF_A_MODE, PDF_X_MODE, USER_PASSWORD
 
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
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 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.
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.
protected  void escapeText(java.lang.String s, int[] letterAdjust, Font font, AbstractTextArea parentArea)
          Escapes text according to PDF rules.
protected  void escapeText(java.lang.String s, int start, int end, int[] letterAdjust, Font font, AbstractTextArea parentArea)
          Escapes text according to PDF rules.
protected  void fillRect(float x, float y, float width, float height)
          Fill a rectangular area.
protected  void finishIDGoTo(PDFGoTo gt, java.awt.geom.Point2D.Float position)
          Set XY position in the PDFGoTo and add it to the PDF trailer.
protected  void finishIDGoTo(PDFGoTo gt, java.lang.String pdfPageRef, java.awt.geom.Point2D.Float position)
          Set page reference and XY position in the PDFGoTo and add it to the PDF trailer.
protected  void finishOpenGoTos()
          Checks if there are any unfinished PDFGoTos left in the list and resolves them to a default position on the page.
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  PDFGoTo getPDFGoToForID(java.lang.String targetID, java.lang.String pvKey)
          Get a PDFGoTo pointing to the given id.
protected  java.lang.String getTargetableID(Area area)
          Returns area's id if it is the first area in the document with that id (i.e.
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.
 void placeImage(float x, float y, float w, float h, PDFXObject 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 uri, java.awt.geom.Rectangle2D pos)
          Deprecated. Use putImage(String, Rectangle2D, Map) instead.
protected  void putImage(java.lang.String uri, java.awt.geom.Rectangle2D pos, java.util.Map foreignAttributes)
          Adds a PDF XObject (a bitmap or form) to the PDF that will later be referenced.
protected  void renderBlock(Block block)
          Renders a block area.
protected  void renderBookmarkTree(BookmarkData bookmarks)
          Renders a Bookmark-Tree object
 void renderDocument(org.w3c.dom.Document doc, java.lang.String ns, java.awt.geom.Rectangle2D pos, java.util.Map foreignAttributes)
          Renders an XML document (SVG for example).
 void renderImage(Image image, java.awt.geom.Rectangle2D pos)
          Renders an image area.
protected  void renderInlineArea(InlineArea inlineArea)
          Render the given InlineArea.
 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 renderViewport(Viewport viewport)
          Render an inline viewport.
 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 saveAbsolutePosition(java.lang.String id, int relativeIPP, int relativeBPP)
          Saves id's absolute position on page for later retrieval by PDFGoTos, using the currently valid transformation and the currently valid PDF page reference
protected  void saveAbsolutePosition(java.lang.String id, java.lang.String pdfPageRef, int relativeIPP, int relativeBPP, java.awt.geom.AffineTransform tf)
          Saves id's absolute position on page for later retrieval by PDFGoTos
protected  void saveBlockPosIfTargetable(Block block)
          If the given block area is a possible link target, its id + absolute position will be saved.
protected  void saveGraphicsState()
          Saves the graphics state of the rendering engine.
protected  void saveInlinePosIfTargetable(InlineArea inlineArea)
          If the given inline area is a possible link target, its id + absolute position will be saved.
 void setAMode(PDFAMode mode)
          Sets the PDF/A mode for the PDF renderer.
 void setEncryptionParams(PDFEncryptionParams encryptionParams)
          Sets the encryption parameters used by the PDF renderer.
 void setFilterMap(java.util.Map filterMap)
          Sets the filter map to be used by the PDF renderer.
 void setOutputProfileURI(java.lang.String outputProfileURI)
          Sets the output color profile for the PDF renderer.
 void setUserAgent(FOUserAgent agent)
          Set the User Agent.
 void setXMode(PDFXMode mode)
          Sets the PDF/X mode for the PDF renderer.
 void startPageSequence(PageSequence pageSequence)
          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, drawBackAndBorders, drawBackground, drawBorders, drawBorders, drawImage, establishTransformationMatrix, handleBlockTraits, handleRegionTraits, renderBlockViewport, renderFlow, renderForeignObject, renderInlineAreaBackAndBorders, renderReferenceArea, renderTextDecoration
 
Methods inherited from class org.apache.fop.render.PrintRenderer
addFontList, getFontFromArea, getFontInfo, getFontList, getFontResolver, getInternalFontNameForArea, instantiateRendererContext, setFontList, setupFontInfo
 
Methods inherited from class org.apache.fop.render.AbstractRenderer
convertTitleToString, getCurrentPageViewport, getImageAdapter, getUserAgent, mptToPt, ptToMpt, renderBeforeFloat, renderBlocks, renderBodyRegion, renderContainer, renderFootnote, renderInlineBlockParent, renderInlineSpace, renderMainReference, renderPageAreas, renderRegion, renderRegionViewport, renderXML, startPageSequence
 
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

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


pdfUtil

protected org.apache.fop.render.pdf.PDFRenderingUtil pdfUtil
Utility class which enables all sorts of features that are not directly connected to the normal rendering process.


pageReferences

protected java.util.Map pageReferences
Maps unique PageViewport key to PDF page reference


idPositions

protected java.util.Map idPositions
Maps XSL-FO element IDs to their on-page XY-positions Must be used in conjunction with the page reference to fully specify the PDFGoTo details


idGoTos

protected java.util.Map idGoTos
Maps XSL-FO element IDs to PDFGoTo objects targeting the corresponding areas These objects may not all be fully filled in yet


unfinishedGoTos

protected java.util.List unfinishedGoTos
The PDFGoTos in idGoTos that are not complete yet


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


generator

protected PDFContentGenerator generator
The current content generator to produce PDF commands with


currentContext

protected PDFResourceContext currentContext
the current annotation list to add annotations to


currentPage

protected PDFPage currentPage
the current page to add annotations to


currentPageRef

protected java.lang.String currentPageRef
the current page's PDF reference string (to avoid numerous function calls)


pageHeight

protected int pageHeight
page height

Constructor Detail

PDFRenderer

public PDFRenderer()
create the PDF renderer

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

startRenderer

public void startRenderer(java.io.OutputStream stream)
                   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:
stream - The OutputStream to use for output
Throws:
java.io.IOException - If an I/O error occurs

finishOpenGoTos

protected void finishOpenGoTos()
Checks if there are any unfinished PDFGoTos left in the list and resolves them to a default position on the page. Logs a warning, as this should not happen.


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

supportsOutOfOrder

public boolean supportsOutOfOrder()
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

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

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
Returns:
the adapter for painting Java2D images (or null if not supported)

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(PageSequence pageSequence)
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, and the language of the document.

Specified by:
startPageSequence in interface Renderer
Overrides:
startPageSequence in class AbstractRenderer
Parameters:
pageSequence - the page sequence

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

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. 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.

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

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)

format

protected static 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)
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

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)

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

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.

getTargetableID

protected java.lang.String getTargetableID(Area area)
Returns area's id if it is the first area in the document with that id (i.e. if the area qualifies as a link target). Otherwise, or if the area has no id, null is returned. NOTE: area must be on currentPageViewport, otherwise result may be wrong!

Parameters:
area - the area for which to return the id
Returns:
the area's id (null if the area has no id or other preceding areas have the same id)

finishIDGoTo

protected void finishIDGoTo(PDFGoTo gt,
                            java.awt.geom.Point2D.Float position)
Set XY position in the PDFGoTo and add it to the PDF trailer.

Parameters:
gt - the PDFGoTo object
position - the X,Y position to set

finishIDGoTo

protected void finishIDGoTo(PDFGoTo gt,
                            java.lang.String pdfPageRef,
                            java.awt.geom.Point2D.Float position)
Set page reference and XY position in the PDFGoTo and add it to the PDF trailer.

Parameters:
gt - the PDFGoTo object
pdfPageRef - the PDF reference string of the target page object
position - the X,Y position to set

getPDFGoToForID

protected PDFGoTo getPDFGoToForID(java.lang.String targetID,
                                  java.lang.String pvKey)
Get a PDFGoTo pointing to the given id. Create one if necessary. It is possible that the PDFGoTo is not fully resolved yet. In that case it must be completed (and added to the PDF trailer) later.

Parameters:
targetID - the target id of the PDFGoTo
pvKey - the unique key of the target PageViewport
Returns:
the PDFGoTo that was found or created

saveAbsolutePosition

protected void saveAbsolutePosition(java.lang.String id,
                                    java.lang.String pdfPageRef,
                                    int relativeIPP,
                                    int relativeBPP,
                                    java.awt.geom.AffineTransform tf)
Saves id's absolute position on page for later retrieval by PDFGoTos

Parameters:
id - the id of the area whose position must be saved
pdfPageRef - the PDF page reference string
relativeIPP - the *relative* IP position in millipoints
relativeBPP - the *relative* BP position in millipoints
tf - the transformation to apply once the relative positions have been converted to points

saveAbsolutePosition

protected void saveAbsolutePosition(java.lang.String id,
                                    int relativeIPP,
                                    int relativeBPP)
Saves id's absolute position on page for later retrieval by PDFGoTos, using the currently valid transformation and the currently valid PDF page reference

Parameters:
id - the id of the area whose position must be saved
relativeIPP - the *relative* IP position in millipoints
relativeBPP - the *relative* BP position in millipoints

saveBlockPosIfTargetable

protected void saveBlockPosIfTargetable(Block block)
If the given block area is a possible link target, its id + absolute position will be saved. The saved position is only correct if this function is called at the very start of renderBlock!

Parameters:
block - the block area in question

saveInlinePosIfTargetable

protected void saveInlinePosIfTargetable(InlineArea inlineArea)
If the given inline area is a possible link target, its id + absolute position will be saved. The saved position is only correct if this function is called at the very start of renderInlineArea!

Parameters:
inlineArea - the inline area in question

renderBlock

protected void renderBlock(Block block)
Renders a block area.

Overrides:
renderBlock in class AbstractRenderer
Parameters:
block - The block area

renderLineArea

protected void renderLineArea(LineArea line)
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

renderInlineArea

protected void renderInlineArea(InlineArea inlineArea)
Render the given InlineArea.

Overrides:
renderInlineArea in class AbstractRenderer
Parameters:
inlineArea - inline area text to render

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

renderViewport

public void renderViewport(Viewport viewport)
Render an inline viewport. This renders an inline viewport by clipping if necessary.

Overrides:
renderViewport in class AbstractPathOrientedRenderer
Parameters:
viewport - the viewport to handle

renderText

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

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

renderWord

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

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

renderSpace

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

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

escapeText

protected void escapeText(java.lang.String s,
                          int[] letterAdjust,
                          Font font,
                          AbstractTextArea parentArea)
Escapes text according to PDF rules.

Parameters:
s - Text to escape
letterAdjust - an array of widths for letter adjustment (may be null)
font - to font in use
parentArea - the parent text area to retrieve certain traits from

escapeText

protected void escapeText(java.lang.String s,
                          int start,
                          int end,
                          int[] letterAdjust,
                          Font font,
                          AbstractTextArea parentArea)
Escapes text according to PDF rules.

Parameters:
s - Text to escape
start - the start position in the text
end - the end position in the text
letterAdjust - an array of widths for letter adjustment (may be null)
font - to font in use
parentArea - the parent text area to retrieve certain traits from

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

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

drawImage

protected void drawImage(java.lang.String url,
                         java.awt.geom.Rectangle2D pos,
                         java.util.Map foreignAttributes)
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

putImage

protected void putImage(java.lang.String uri,
                        java.awt.geom.Rectangle2D pos)
Deprecated. Use putImage(String, Rectangle2D, Map) instead.

Adds a PDF XObject (a bitmap or form) to the PDF that will later be referenced.

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

putImage

protected void putImage(java.lang.String uri,
                        java.awt.geom.Rectangle2D pos,
                        java.util.Map foreignAttributes)
Adds a PDF XObject (a bitmap or form) to the PDF that will later be referenced.

Parameters:
uri - URL of the bitmap
pos - Position of the bitmap
foreignAttributes - foreign attributes associated with the image

placeImage

public void placeImage(float x,
                       float y,
                       float w,
                       float h,
                       PDFXObject 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 - the image XObject

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

renderDocument

public void renderDocument(org.w3c.dom.Document doc,
                           java.lang.String ns,
                           java.awt.geom.Rectangle2D pos,
                           java.util.Map foreignAttributes)
Renders an XML document (SVG for example).

Overrides:
renderDocument in class PrintRenderer
Parameters:
doc - the DOM Document containing the XML document to be rendered
ns - the namespace URI for the XML document
pos - the position for the generated graphic/image
foreignAttributes - the foreign attributes containing rendering hints, or null

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()
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.

setAMode

public void setAMode(PDFAMode mode)
Sets the PDF/A mode for the PDF renderer.

Parameters:
mode - the PDF/A mode

setXMode

public void setXMode(PDFXMode mode)
Sets the PDF/X mode for the PDF renderer.

Parameters:
mode - the PDF/X mode

setOutputProfileURI

public void setOutputProfileURI(java.lang.String outputProfileURI)
Sets the output color profile for the PDF renderer.

Parameters:
outputProfileURI - the URI to the output color profile

setFilterMap

public void setFilterMap(java.util.Map filterMap)
Sets the filter map to be used by the PDF renderer.

Parameters:
filterMap - the filter map

setEncryptionParams

public void setEncryptionParams(PDFEncryptionParams encryptionParams)
Sets the encryption parameters used by the PDF renderer.

Parameters:
encryptionParams - the encryption parameters

fop 1.0

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