org.apache.fop.render.pdf

Class PDFRenderer

Implemented Interfaces:
Constants, Renderer

public class PDFRenderer
extends AbstractPathOrientedRenderer

Renderer that renders areas to PDF.

Field Summary

static String
ENCRYPTION_PARAMS
PDF encryption parameter: all parameters as object, datatype: PDFEncryptionParams
static String
KEY_DISABLE_SRGB_COLORSPACE
Rendering Options key for disabling the sRGB color space (only possible if no PDF/A or PDF/X profile is active).
static String
KEY_OUTPUT_PROFILE
Rendering Options key for the ICC profile for the output intent.
static String
MIME_TYPE
The mime type for pdf
static int
NORMAL_PDF_RESOLUTION
Normal PDF resolution (72dpi)
static String
NO_ANNOTATIONS
PDF encryption parameter: Forbids annotations, datatype: Boolean or "true"/"false"
static String
NO_COPY_CONTENT
PDF encryption parameter: Forbids copying content, datatype: Boolean or "true"/"false"
static String
NO_EDIT_CONTENT
PDF encryption parameter: Forbids editing content, datatype: Boolean or "true"/"false"
static String
NO_PRINT
PDF encryption parameter: Forbids printing, datatype: Boolean or "true"/"false"
static String
OWNER_PASSWORD
PDF encryption parameter: owner password, datatype: String
static String
PDF_A_MODE
Rendering Options key for the PDF/A mode.
static String
PDF_X_MODE
Rendering Options key for the PDF/X mode.
static String
USER_PASSWORD
PDF encryption parameter: user password, datatype: String
protected static boolean
WRITE_COMMENTS
Controls whether comments are written to the PDF stream.
protected PDFResourceContext
currentContext
the current annotation list to add annotations to
protected 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 String
currentPageRef
the current page's PDF reference string (to avoid numerous function calls)
protected PDFState
currentState
drawing state
protected PDFStream
currentStream
the current stream to add PDF commands to
protected boolean
disableSRGBColorSpace
controls whether the sRGB color space should be installed
protected PDFEncryptionParams
encryptionParams
the (optional) encryption parameters
protected Map
filterMap
Registry of PDF filters
protected 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 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
protected boolean
inTextMode
true if a BT command has been written.
protected 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 String
outputProfileURI
Optional URI to an output profile to be used.
protected int
pageHeight
page height
protected Map
pageReferences
Maps unique PageViewport key to PDF page reference
protected Map
pages
Map of pages using the PageViewport as the key this is used for prepared pages that cannot be immediately rendered
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 Map
pvReferences
Maps unique PageViewport key back to PageViewport itself
protected PDFICCBasedColorSpace
sRGBColorSpace
the default sRGB color space.
protected List
unfinishedGoTos
The PDFGoTos in idGoTos that are not complete yet

Fields inherited from class org.apache.fop.render.PrintRenderer

fontInfo, fontList, fontResolver

Fields inherited from class org.apache.fop.render.AbstractRenderer

containingBPPosition, containingIPPosition, currentBPPosition, currentIPPosition, currentPageViewport, log, userAgent

Fields inherited from interface org.apache.fop.fo.Constants

COMPOUND_COUNT, COMPOUND_MASK, COMPOUND_SHIFT, CP_BLOCK_PROGRESSION_DIRECTION, CP_CONDITIONALITY, CP_INLINE_PROGRESSION_DIRECTION, CP_LENGTH, CP_MAXIMUM, CP_MINIMUM, CP_OPTIMUM, CP_PRECEDENCE, CP_WITHIN_COLUMN, CP_WITHIN_LINE, CP_WITHIN_PAGE, ENUM_COUNT, 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_NONE, EN_NON_UNIFORM, EN_NOREPEAT, EN_NORMAL, EN_NOT_BLANK, 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_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_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_SMALLER, EN_SMALL_CAPS, EN_SMALL_CAPTION, 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_USECONTENT, EN_USE_FONT_METRICS, EN_USE_SCRIPT, EN_VISIBLE, EN_WIDER, EN_WRAP, EN_X_DISTRIBUTE, EN_X_FILL, 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, PROPERTY_COUNT, PROPERTY_MASK, 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_ENDS_ROW, PR_END_INDENT, 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_LINEFEED_TREATMENT, PR_LINE_HEIGHT, PR_LINE_HEIGHT_SHIFT_ADJUSTMENT, PR_LINE_STACKING_STRATEGY, 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_MAXIMUM_REPEATS, PR_MAX_HEIGHT, PR_MAX_WIDTH, 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_REFERENCE_ORIENTATION, PR_REF_ID, 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_STARTING_STATE, PR_STARTS_ROW, PR_START_INDENT, 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_XML_LANG, PR_X_BLOCK_PROGRESSION_UNIT, PR_X_ORPHAN_CONTENT_LIMIT, PR_X_WIDOW_CONTENT_LIMIT, PR_Z_INDEX

Fields inherited from interface org.apache.fop.render.Renderer

ROLE

Constructor Summary

PDFRenderer()
create the PDF renderer

Method Summary

protected void
beginTextObject()
Indicates the beginning of a text object.
protected 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)
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(String text)
writes out a comment.
protected void
concatenateTransformationMatrix(AffineTransform at)
protected RendererContext
createRendererContext(int x, int y, int width, int height, Map foreignAttributes)
protected void
drawBorderLine(float x1, float y1, float x2, float y2, boolean horz, boolean startOrBefore, int style, Color col)
protected void
drawImage(String url, Rectangle2D pos, Map foreignAttributes)
protected void
endTextObject()
Indicates the end of a text object.
protected void
endVParea()
void
escapeText(String s, int[] letterAdjust, Font fs, AbstractTextArea parentArea, boolean useMultiByte, StringBuffer pdf)
Escapes text according to PDF rules.
protected void
fillRect(float x, float y, float w, float h)
protected void
finishIDGoTo(PDFGoTo gt, Point2D.Float position)
Set XY position in the PDFGoTo and add it to the PDF trailer.
protected void
finishIDGoTo(PDFGoTo gt, String pdfPageRef, 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 String
format(float value)
Formats a float value (normally coordinates) as Strings.
Graphics2DAdapter
getGraphics2DAdapter()
String
getMimeType()
protected PDFGoTo
getPDFGoToForID(String targetID, String pvKey)
Get a PDFGoTo pointing to the given id.
protected String
getTargetableID(Area area)
Returns area's id if it is the first area in the document with that id (i.e.
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.
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)
protected void
putImage(String uri, Rectangle2D pos)
Deprecated. Use @putImage(String, Rectangle2D, Map) instead.
protected void
putImage(String uri, Rectangle2D pos, Map foreignAttributes)
Adds a PDF XObject (a bitmap or form) to the PDF that will later be referenced.
protected void
renderBlock(Block block)
protected void
renderBookmarkTree(BookmarkData bookmarks)
Renders a Bookmark-Tree object
void
renderImage(Image image, Rectangle2D pos)
protected void
renderInlineArea(InlineArea inlineArea)
void
renderInlineParent(InlineParent ip)
Render inline parent area.
void
renderLeader(Leader area)
Render leader area.
protected void
renderLineArea(LineArea line)
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)
void
renderText(TextArea text)
void
renderWord(WordArea word)
protected void
restoreGraphicsState()
protected void
restoreStateStackAfterBreakOut(List breakOutList)
Restores the state stack after a break out.
protected void
saveAbsolutePosition(String id, String pdfPageRef, int relativeIPP, int relativeBPP, AffineTransform tf)
Saves id's absolute position on page for later retrieval by PDFGoTos
protected void
saveAbsolutePosition(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
saveBlockPosIfTargetable(Block block)
If the given block area is a possible link target, its id + absolute position will be saved.
protected void
saveGraphicsState()
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)
protected void
setColor(Color col, boolean fill, StringBuffer pdf)
Establishes a new foreground or fill color.
void
setFilterMap(Map filterMap)
void
setOutputProfileURI(String outputProfileURI)
void
setUserAgent(FOUserAgent agent)
void
setXMode(PDFXMode mode)
void
startPageSequence(PageSequence pageSequence)
Start the next page sequence.
void
startRenderer(OutputStream stream)
protected void
startVParea(CTM ctm, Rectangle2D clippingRect)
void
stopRenderer()
boolean
supportsOutOfOrder()
protected void
updateColor(Color col, boolean fill)

Methods inherited from class org.apache.fop.render.AbstractPathOrientedRenderer

beginTextObject, breakOutOfStateStack, clip, clipRect, closePath, concatenateTransformationMatrix, drawBackAndBorders, drawBorderLine, drawBorders, drawImage, drawImage, endTextObject, fillRect, handleBlockTraits, handleRegionTraits, lineTo, moveTo, renderBlockViewport, renderForeignObject, renderInlineAreaBackAndBorders, renderTextDecoration, renderViewport, restoreGraphicsState, restoreStateStackAfterBreakOut, saveGraphicsState, updateColor

Methods inherited from class org.apache.fop.render.PrintRenderer

addFontList, createRendererContext, getFontFromArea, getFontResolver, getInternalFontNameForArea, lightenColor, renderDocument, setFontList, setupFontInfo

Methods inherited from class org.apache.fop.render.AbstractRenderer

convertTitleToString, endVParea, getCurrentPageViewport, getGraphics2DAdapter, getImageAdapter, getMimeType, getUserAgent, handleBlockTraits, handleRegionTraits, mptToPt, preparePage, processOffDocumentItem, ptToMpt, renderBeforeFloat, renderBlock, renderBlockViewport, renderBlocks, renderBodyRegion, renderCharacter, renderContainer, renderFlow, renderFootnote, renderForeignObject, renderImage, renderInlineArea, renderInlineAreaBackAndBorders, renderInlineBlockParent, renderInlineParent, renderInlineSpace, renderLeader, renderLineArea, renderMainReference, renderPage, renderPageAreas, renderRegion, renderRegionViewport, renderSpace, renderText, renderViewport, renderWord, renderXML, setUserAgent, setupFontInfo, startPageSequence, startPageSequence, startRenderer, startVParea, stopRenderer, supportsOutOfOrder

Field Details

ENCRYPTION_PARAMS

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

KEY_DISABLE_SRGB_COLORSPACE

public static final String KEY_DISABLE_SRGB_COLORSPACE
Rendering Options key for disabling the sRGB color space (only possible if no PDF/A or PDF/X profile is active).

KEY_OUTPUT_PROFILE

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

MIME_TYPE

public static final String MIME_TYPE
The mime type for pdf

NORMAL_PDF_RESOLUTION

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

NO_ANNOTATIONS

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

NO_COPY_CONTENT

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

NO_EDIT_CONTENT

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

NO_PRINT

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

OWNER_PASSWORD

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

PDF_A_MODE

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

PDF_X_MODE

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

USER_PASSWORD

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

WRITE_COMMENTS

protected static final boolean WRITE_COMMENTS
Controls whether comments are written to the PDF stream.
Field Value:
true

currentContext

protected PDFResourceContext currentContext
the current annotation list to add annotations to

currentFontName

protected String currentFontName
Name of currently selected font

currentFontSize

protected int currentFontSize
Size of currently selected font

currentPage

protected PDFPage currentPage
the current page to add annotations to

currentPageRef

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

currentState

protected PDFState currentState
drawing state

currentStream

protected PDFStream currentStream
the current stream to add PDF commands to

disableSRGBColorSpace

protected boolean disableSRGBColorSpace
controls whether the sRGB color space should be installed

encryptionParams

protected PDFEncryptionParams encryptionParams
the (optional) encryption parameters

filterMap

protected Map filterMap
Registry of PDF filters

idGoTos

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

idPositions

protected 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

inTextMode

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

ostream

protected OutputStream ostream
The output stream to write the document to

outputProfile

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

outputProfileURI

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

pageHeight

protected int pageHeight
page height

pageReferences

protected Map pageReferences
Maps unique PageViewport key to PDF page reference

pages

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

pdfAMode

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

pdfDoc

protected PDFDocument pdfDoc
the PDF Document being created

pdfResources

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

pdfXMode

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

pvReferences

protected Map pvReferences
Maps unique PageViewport key back to PageViewport itself

sRGBColorSpace

protected PDFICCBasedColorSpace sRGBColorSpace
the default sRGB color space.

unfinishedGoTos

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

Constructor Details

PDFRenderer

public PDFRenderer()
create the PDF renderer

Method Details

beginTextObject

protected void beginTextObject()
Indicates the beginning of a text object.
Overrides:
beginTextObject in interface AbstractPathOrientedRenderer

breakOutOfStateStack

protected List breakOutOfStateStack()
Breaks out of the state stack to handle fixed block-containers.
Overrides:
breakOutOfStateStack in interface AbstractPathOrientedRenderer
Returns:
the saved state stack to recreate later

clip

protected void clip()
Clip an area.
Overrides:
clip in interface AbstractPathOrientedRenderer

clipRect

protected void clipRect(float x,
                        float y,
                        float width,
                        float height)
Overrides:
clipRect in interface AbstractPathOrientedRenderer

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.
Overrides:
closePath in interface AbstractPathOrientedRenderer

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

comment

protected void comment(String text)
writes out a comment.
Parameters:
text - text for the comment

concatenateTransformationMatrix

protected void concatenateTransformationMatrix(AffineTransform at)
Overrides:
concatenateTransformationMatrix in interface AbstractPathOrientedRenderer

createRendererContext

protected RendererContext createRendererContext(int x,
                                                int y,
                                                int width,
                                                int height,
                                                Map foreignAttributes)
Overrides:
createRendererContext in interface PrintRenderer

drawBorderLine

protected void drawBorderLine(float x1,
                              float y1,
                              float x2,
                              float y2,
                              boolean horz,
                              boolean startOrBefore,
                              int style,
                              Color col)
Overrides:
drawBorderLine in interface AbstractPathOrientedRenderer

drawImage

protected void drawImage(String url,
                         Rectangle2D pos,
                         Map foreignAttributes)
Overrides:
drawImage in interface AbstractPathOrientedRenderer

endTextObject

protected void endTextObject()
Indicates the end of a text object.
Overrides:
endTextObject in interface AbstractPathOrientedRenderer

endVParea

protected void endVParea()
Overrides:
endVParea in interface AbstractRenderer

escapeText

public void escapeText(String s,
                       int[] letterAdjust,
                       Font fs,
                       AbstractTextArea parentArea,
                       boolean useMultiByte,
                       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

fillRect

protected void fillRect(float x,
                        float y,
                        float w,
                        float h)
Overrides:
fillRect in interface AbstractPathOrientedRenderer

finishIDGoTo

protected void finishIDGoTo(PDFGoTo gt,
                            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,
                            String pdfPageRef,
                            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

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.

format

protected static final String format(float value)
Formats a float value (normally coordinates) as Strings.
Parameters:
value - the value
Returns:
the formatted value

getGraphics2DAdapter

public Graphics2DAdapter getGraphics2DAdapter()
Specified by:
getGraphics2DAdapter in interface Renderer
Overrides:
getGraphics2DAdapter in interface AbstractRenderer

getMimeType

public String getMimeType()
Specified by:
getMimeType in interface Renderer
Overrides:
getMimeType in interface AbstractRenderer

getPDFGoToForID

protected PDFGoTo getPDFGoToForID(String targetID,
                                  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

getTargetableID

protected 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

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 interface AbstractPathOrientedRenderer
Parameters:
region - the RegionViewport whose region is to be drawn

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).
Overrides:
lineTo in interface AbstractPathOrientedRenderer
Parameters:
x - x coordinate
y - y coordinate

moveTo

protected void moveTo(float x,
                      float y)
Moves the current point to (x, y), omitting any connecting line segment.
Overrides:
moveTo in interface AbstractPathOrientedRenderer
Parameters:
x - x coordinate
y - y coordinate

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

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 interface AbstractRenderer
Parameters:
page - the page to prepare

processOffDocumentItem

public void processOffDocumentItem(OffDocumentItem odi)
Specified by:
processOffDocumentItem in interface Renderer
Overrides:
processOffDocumentItem in interface AbstractRenderer

putImage

protected void putImage(String uri,
                        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(String uri,
                        Rectangle2D pos,
                        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

renderBlock

protected void renderBlock(Block block)
Overrides:
renderBlock in interface AbstractRenderer

renderBookmarkTree

protected void renderBookmarkTree(BookmarkData bookmarks)
Renders a Bookmark-Tree object
Parameters:
bookmarks - the BookmarkData object containing all the Bookmark-Items

renderImage

public void renderImage(Image image,
                        Rectangle2D pos)
Overrides:
renderImage in interface AbstractRenderer

renderInlineArea

protected void renderInlineArea(InlineArea inlineArea)
Overrides:
renderInlineArea in interface AbstractRenderer

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 interface AbstractRenderer
Parameters:
ip - the inline parent area

renderLeader

public void renderLeader(Leader area)
Render leader area. This renders a leader area which is an area with a rule.
Overrides:
renderLeader in interface AbstractRenderer
Parameters:
area - the leader area to render

renderLineArea

protected void renderLineArea(LineArea line)
Overrides:
renderLineArea in interface AbstractRenderer

renderPage

public void renderPage(PageViewport page)
            throws 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 interface AbstractRenderer

renderSpace

public void renderSpace(SpaceArea space)
Overrides:
renderSpace in interface AbstractRenderer

renderText

public void renderText(TextArea text)
Overrides:
renderText in interface AbstractRenderer

renderWord

public void renderWord(WordArea word)
Overrides:
renderWord in interface AbstractRenderer

restoreGraphicsState

protected void restoreGraphicsState()
Overrides:
restoreGraphicsState in interface AbstractPathOrientedRenderer

restoreStateStackAfterBreakOut

protected void restoreStateStackAfterBreakOut(List breakOutList)
Restores the state stack after a break out.
Overrides:
restoreStateStackAfterBreakOut in interface AbstractPathOrientedRenderer
Parameters:
breakOutList - the state stack to restore.

saveAbsolutePosition

protected void saveAbsolutePosition(String id,
                                    String pdfPageRef,
                                    int relativeIPP,
                                    int relativeBPP,
                                    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(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

saveGraphicsState

protected void saveGraphicsState()
Overrides:
saveGraphicsState in interface AbstractPathOrientedRenderer

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

setAMode

public void setAMode(PDFAMode mode)

setColor

protected void setColor(Color col,
                        boolean fill,
                        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.

setFilterMap

public void setFilterMap(Map filterMap)

setOutputProfileURI

public void setOutputProfileURI(String outputProfileURI)

setUserAgent

public void setUserAgent(FOUserAgent agent)
Specified by:
setUserAgent in interface Renderer
Overrides:
setUserAgent in interface AbstractRenderer

setXMode

public void setXMode(PDFXMode mode)

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 interface AbstractRenderer
Parameters:
pageSequence - the page sequence

startRenderer

public void startRenderer(OutputStream stream)
            throws IOException
Specified by:
startRenderer in interface Renderer
Overrides:
startRenderer in interface AbstractRenderer

startVParea

protected void startVParea(CTM ctm,
                           Rectangle2D clippingRect)
Overrides:
startVParea in interface AbstractRenderer

stopRenderer

public void stopRenderer()
            throws IOException
Specified by:
stopRenderer in interface Renderer
Overrides:
stopRenderer in interface AbstractRenderer

supportsOutOfOrder

public boolean supportsOutOfOrder()
Specified by:
supportsOutOfOrder in interface Renderer
Overrides:
supportsOutOfOrder in interface AbstractRenderer

updateColor

protected void updateColor(Color col,
                           boolean fill)
Overrides:
updateColor in interface AbstractPathOrientedRenderer

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