Package org.apache.fop.layoutmgr.inline
Class TextLayoutManager
java.lang.Object
org.apache.fop.layoutmgr.AbstractBaseLayoutManager
org.apache.fop.layoutmgr.AbstractLayoutManager
org.apache.fop.layoutmgr.inline.LeafNodeLayoutManager
org.apache.fop.layoutmgr.inline.TextLayoutManager
- All Implemented Interfaces:
PercentBaseContext,Constants,InlineLevelLayoutManager,LayoutManager
LayoutManager for text (a sequence of characters) which generates one
or more inline areas.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate final classthis class stores information about changes in vecAreaInfo which are not yet appliedprivate final classNested classes/interfaces inherited from class org.apache.fop.layoutmgr.inline.LeafNodeLayoutManager
LeafNodeLayoutManager.AreaInfo -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate AlignmentContextprivate final Positionprivate static final StringNon-space characters on which we can end a line.private Listprivate intprivate final FOTextprivate booleanprivate intsize of the hyphen character glyph in current fontprivate booleanprivate final MinOptMax[]Contains an array of widths to adjust for kerning.private MinOptMaxprivate intThe width to be reserved for border and padding at the end of the line.private intThe width to be reserved for border and padding at the start of the line.private static final org.apache.commons.logging.Loglogging instanceprivate final List<GlyphMapping> private intStart index of next TextAreaprivate int[]private static final intprivate intsize of a space character (U+0020) glyph in current fontprivate FontFont used for the space between words.private intprivate intprivate FOUserAgentprivate MinOptMaxFields inherited from class org.apache.fop.layoutmgr.inline.LeafNodeLayoutManager
areaInfo, commonBorderPaddingBackground, curArea, log, somethingChangedFields inherited from class org.apache.fop.layoutmgr.AbstractLayoutManager
childLMiter, childLMs, curChildLM, fobjIter, parentLayoutManagerFields inherited from class org.apache.fop.layoutmgr.AbstractBaseLayoutManager
fobj, generatesBlockArea, generatesReferenceAreaFields inherited from interface org.apache.fop.fo.Constants
COMPOUND_COUNT, COMPOUND_MASK, COMPOUND_SHIFT, CP_BLOCK_PROGRESSION_DIRECTION, CP_CONDITIONALITY, CP_INLINE_PROGRESSION_DIRECTION, CP_LENGTH, CP_MAXIMUM, CP_MINIMUM, CP_OPTIMUM, CP_PRECEDENCE, CP_WITHIN_COLUMN, CP_WITHIN_LINE, CP_WITHIN_PAGE, EN_100, EN_200, EN_300, EN_400, EN_500, EN_600, EN_700, EN_800, EN_900, EN_ABSOLUTE, EN_ABSOLUTE_COLORMETRIC, EN_AFTER, EN_AFTER_EDGE, EN_ALL, EN_ALPHABETIC, EN_ALTERNATE, EN_ALWAYS, EN_ANY, EN_AUTO, EN_AUTO_EVEN, EN_AUTO_ODD, EN_AVOID, EN_BACKSLANT, EN_BASELINE, EN_BEFORE, EN_BEFORE_EDGE, EN_BIDI_OVERRIDE, EN_BLANK, EN_BLINK, EN_BLOCK, EN_BOLDER, EN_BOTH, EN_BOTTOM, EN_BOUNDED_IN_ONE_DIMENSION, EN_BT, EN_CAPITALIZE, EN_CAPTION, EN_CENTER, EN_CENTRAL, EN_CHARACTER_BY_CHARACTER, EN_COLLAPSE, EN_COLLAPSE_WITH_PRECEDENCE, EN_COLUMN, EN_CONDENSED, EN_CONSIDER_SHIFTS, EN_DASHED, EN_DISCARD, EN_DISREGARD_SHIFTS, EN_DOCUMENT, EN_DOTS, EN_DOTTED, EN_DOUBLE, EN_EMBED, EN_END, EN_END_ON_EVEN, EN_END_ON_ODD, EN_ERROR_IF_OVERFLOW, EN_EVEN, EN_EVEN_PAGE, EN_EXPANDED, EN_EXTRA_CONDENSED, EN_EXTRA_EXPANDED, EN_FALSE, EN_FIC, EN_FIRST, EN_FIRST_INCLUDING_CARRYOVER, EN_FIRST_STARTING, EN_FIXED, EN_FONT_HEIGHT, EN_FORCE, EN_FSWP, EN_GROOVE, EN_HANGING, EN_HIDDEN, EN_HIDE, EN_ICON, EN_IDEOGRAPHIC, EN_IGNORE, EN_IGNORE_IF_AFTER_LINEFEED, EN_IGNORE_IF_BEFORE_LINEFEED, EN_IGNORE_IF_SURROUNDING_LINEFEED, EN_INDEFINITE, EN_INDENT, EN_INHERIT, EN_INSET, EN_INSIDE, EN_INTEGER_PIXELS, EN_ITALIC, EN_JUSTIFY, EN_LARGER, EN_LAST, EN_LAST_ENDING, EN_LAST_STARTING, EN_LEAVE_SEPARATE, EN_LEFT, EN_LEWP, EN_LIGHTER, EN_LINE, EN_LINE_HEIGHT, EN_LINE_THROUGH, EN_LINK, EN_LOWERCASE, EN_LR, EN_LR_TB, EN_LSWP, EN_LTR, EN_MATHEMATICAL, EN_MAX_HEIGHT, EN_MENU, EN_MERGE, EN_MESSAGE_BOX, EN_MIDDLE, EN_NARROWER, EN_NEW, EN_NO_BLINK, EN_NO_CHANGE, EN_NO_FORCE, EN_NO_LIMIT, EN_NO_LINE_THROUGH, EN_NO_LINK, EN_NO_OVERLINE, EN_NO_UNDERLINE, EN_NO_WRAP, EN_NON_UNIFORM, EN_NONE, EN_NOREPEAT, EN_NORMAL, EN_NOT_BLANK, EN_OBLIQUE, EN_ODD, EN_ODD_PAGE, EN_ONLY, EN_OUTSET, EN_OUTSIDE, EN_OVERLINE, EN_PAGE, EN_PAGE_SEQUENCE, EN_PAGINATE, EN_PERCEPTUAL, EN_PRE, EN_PRESERVE, EN_REFERENCE_AREA, EN_RELATIVE, EN_RELATIVE_COLOMETRIC, EN_REPEAT, EN_REPEATX, EN_REPEATY, EN_REPLACE, EN_RESAMPLE_ANY_METHOD, EN_RESET_SIZE, EN_REST, EN_RETAIN, EN_RIDGE, EN_RIGHT, EN_RL, EN_RL_TB, EN_RTL, EN_RULE, EN_SATURATION, EN_SCALE_DOWN_TO_FIT, EN_SCALE_TO_FIT, EN_SCALE_UP_TO_FIT, EN_SCROLL, EN_SELECT_FIRST_FITTING, EN_SEMI_CONDENSED, EN_SEMI_EXPANDED, EN_SEPARATE, EN_SHOW, EN_SMALL_CAPS, EN_SMALL_CAPTION, EN_SMALLER, EN_SOLID, EN_SPACE, EN_START, EN_STATIC, EN_STATUS_BAR, EN_SUB, EN_SUPER, EN_SUPPRESS, EN_TABLE, EN_TABLE_FRAGMENT, EN_TB, EN_TB_LR, EN_TB_RL, EN_TEXT_AFTER_EDGE, EN_TEXT_BEFORE_EDGE, EN_TEXT_BOTTOM, EN_TEXT_TOP, EN_TOP, EN_TRADITIONAL, EN_TREAT_AS_SPACE, EN_TREAT_AS_ZERO_WIDTH_SPACE, EN_TRUE, EN_ULTRA_CONDENSED, EN_ULTRA_EXPANDED, EN_UNBOUNDED, EN_UNDERLINE, EN_UNIFORM, EN_UPPERCASE, EN_USE_FONT_METRICS, EN_USE_SCRIPT, EN_USECONTENT, EN_VISIBLE, EN_WIDER, EN_WRAP, ENUM_COUNT, FO_BASIC_LINK, FO_BIDI_OVERRIDE, FO_BLOCK, FO_BLOCK_CONTAINER, FO_BOOKMARK, FO_BOOKMARK_TITLE, FO_BOOKMARK_TREE, FO_CHANGE_BAR_BEGIN, FO_CHANGE_BAR_END, FO_CHARACTER, FO_COLOR_PROFILE, FO_CONDITIONAL_PAGE_MASTER_REFERENCE, FO_DECLARATIONS, FO_EXTERNAL_GRAPHIC, FO_FLOAT, FO_FLOW, FO_FLOW_ASSIGNMENT, FO_FLOW_MAP, FO_FLOW_NAME_SPECIFIER, FO_FLOW_SOURCE_LIST, FO_FLOW_TARGET_LIST, FO_FOLIO_PREFIX, FO_FOLIO_SUFFIX, FO_FOOTNOTE, FO_FOOTNOTE_BODY, FO_INDEX_KEY_REFERENCE, FO_INDEX_PAGE_CITATION_LIST, FO_INDEX_PAGE_CITATION_LIST_SEPARATOR, FO_INDEX_PAGE_CITATION_RANGE_SEPARATOR, FO_INDEX_PAGE_NUMBER_PREFIX, FO_INDEX_PAGE_NUMBER_SUFFIX, FO_INDEX_RANGE_BEGIN, FO_INDEX_RANGE_END, FO_INITIAL_PROPERTY_SET, FO_INLINE, FO_INLINE_CONTAINER, FO_INSTREAM_FOREIGN_OBJECT, FO_LAYOUT_MASTER_SET, FO_LEADER, FO_LIST_BLOCK, FO_LIST_ITEM, FO_LIST_ITEM_BODY, FO_LIST_ITEM_LABEL, FO_MARKER, FO_MULTI_CASE, FO_MULTI_PROPERTIES, FO_MULTI_PROPERTY_SET, FO_MULTI_SWITCH, FO_MULTI_TOGGLE, FO_PAGE_NUMBER, FO_PAGE_NUMBER_CITATION, FO_PAGE_NUMBER_CITATION_LAST, FO_PAGE_SEQUENCE, FO_PAGE_SEQUENCE_MASTER, FO_PAGE_SEQUENCE_WRAPPER, FO_REGION_AFTER, FO_REGION_BEFORE, FO_REGION_BODY, FO_REGION_END, FO_REGION_NAME_SPECIFIER, FO_REGION_START, FO_REPEATABLE_PAGE_MASTER_ALTERNATIVES, FO_REPEATABLE_PAGE_MASTER_REFERENCE, FO_RETRIEVE_MARKER, FO_RETRIEVE_TABLE_MARKER, FO_ROOT, FO_SCALING_VALUE_CITATION, FO_SIMPLE_PAGE_MASTER, FO_SINGLE_PAGE_MASTER_REFERENCE, FO_STATIC_CONTENT, FO_TABLE, FO_TABLE_AND_CAPTION, FO_TABLE_BODY, FO_TABLE_CAPTION, FO_TABLE_CELL, FO_TABLE_COLUMN, FO_TABLE_FOOTER, FO_TABLE_HEADER, FO_TABLE_ROW, FO_TITLE, FO_UNKNOWN_NODE, FO_WRAPPER, FRM_OBJ_COUNT, NOT_SET, PR_ABSOLUTE_POSITION, PR_ACTIVE_STATE, PR_ALIGNMENT_ADJUST, PR_ALIGNMENT_BASELINE, PR_AUTO_RESTORE, PR_AZIMUTH, PR_BACKGROUND, PR_BACKGROUND_ATTACHMENT, PR_BACKGROUND_COLOR, PR_BACKGROUND_IMAGE, PR_BACKGROUND_POSITION, PR_BACKGROUND_POSITION_HORIZONTAL, PR_BACKGROUND_POSITION_VERTICAL, PR_BACKGROUND_REPEAT, PR_BASELINE_SHIFT, PR_BLANK_OR_NOT_BLANK, PR_BLOCK_PROGRESSION_DIMENSION, PR_BORDER, PR_BORDER_AFTER_COLOR, PR_BORDER_AFTER_PRECEDENCE, PR_BORDER_AFTER_STYLE, PR_BORDER_AFTER_WIDTH, PR_BORDER_BEFORE_COLOR, PR_BORDER_BEFORE_PRECEDENCE, PR_BORDER_BEFORE_STYLE, PR_BORDER_BEFORE_WIDTH, PR_BORDER_BOTTOM, PR_BORDER_BOTTOM_COLOR, PR_BORDER_BOTTOM_STYLE, PR_BORDER_BOTTOM_WIDTH, PR_BORDER_COLLAPSE, PR_BORDER_COLOR, PR_BORDER_END_COLOR, PR_BORDER_END_PRECEDENCE, PR_BORDER_END_STYLE, PR_BORDER_END_WIDTH, PR_BORDER_LEFT, PR_BORDER_LEFT_COLOR, PR_BORDER_LEFT_STYLE, PR_BORDER_LEFT_WIDTH, PR_BORDER_RIGHT, PR_BORDER_RIGHT_COLOR, PR_BORDER_RIGHT_STYLE, PR_BORDER_RIGHT_WIDTH, PR_BORDER_SEPARATION, PR_BORDER_SPACING, PR_BORDER_START_COLOR, PR_BORDER_START_PRECEDENCE, PR_BORDER_START_STYLE, PR_BORDER_START_WIDTH, PR_BORDER_STYLE, PR_BORDER_TOP, PR_BORDER_TOP_COLOR, PR_BORDER_TOP_STYLE, PR_BORDER_TOP_WIDTH, PR_BORDER_WIDTH, PR_BOTTOM, PR_BREAK_AFTER, PR_BREAK_BEFORE, PR_CAPTION_SIDE, PR_CASE_NAME, PR_CASE_TITLE, PR_CHANGE_BAR_CLASS, PR_CHANGE_BAR_COLOR, PR_CHANGE_BAR_OFFSET, PR_CHANGE_BAR_PLACEMENT, PR_CHANGE_BAR_STYLE, PR_CHANGE_BAR_WIDTH, PR_CHARACTER, PR_CLEAR, PR_CLIP, PR_COLOR, PR_COLOR_PROFILE_NAME, PR_COLUMN_COUNT, PR_COLUMN_GAP, PR_COLUMN_NUMBER, PR_COLUMN_WIDTH, PR_CONTENT_HEIGHT, PR_CONTENT_TYPE, PR_CONTENT_WIDTH, PR_COUNTRY, PR_CUE, PR_CUE_AFTER, PR_CUE_BEFORE, PR_DESTINATION_PLACEMENT_OFFSET, PR_DIRECTION, PR_DISPLAY_ALIGN, PR_DOMINANT_BASELINE, PR_ELEVATION, PR_EMPTY_CELLS, PR_END_INDENT, PR_ENDS_ROW, PR_EXTENT, PR_EXTERNAL_DESTINATION, PR_FLOAT, PR_FLOW_MAP_NAME, PR_FLOW_MAP_REFERENCE, PR_FLOW_NAME, PR_FLOW_NAME_REFERENCE, PR_FONT, PR_FONT_FAMILY, PR_FONT_SELECTION_STRATEGY, PR_FONT_SIZE, PR_FONT_SIZE_ADJUST, PR_FONT_STRETCH, PR_FONT_STYLE, PR_FONT_VARIANT, PR_FONT_WEIGHT, PR_FORCE_PAGE_COUNT, PR_FORMAT, PR_GLYPH_ORIENTATION_HORIZONTAL, PR_GLYPH_ORIENTATION_VERTICAL, PR_GROUPING_SEPARATOR, PR_GROUPING_SIZE, PR_HEIGHT, PR_HYPHENATE, PR_HYPHENATION_CHARACTER, PR_HYPHENATION_KEEP, PR_HYPHENATION_LADDER_COUNT, PR_HYPHENATION_PUSH_CHARACTER_COUNT, PR_HYPHENATION_REMAIN_CHARACTER_COUNT, PR_ID, PR_INDEX_CLASS, PR_INDEX_KEY, PR_INDICATE_DESTINATION, PR_INITIAL_PAGE_NUMBER, PR_INLINE_PROGRESSION_DIMENSION, PR_INTERNAL_DESTINATION, PR_INTRINSIC_SCALE_VALUE, PR_INTRUSION_DISPLACE, PR_KEEP_TOGETHER, PR_KEEP_WITH_NEXT, PR_KEEP_WITH_PREVIOUS, PR_LANGUAGE, PR_LAST_LINE_END_INDENT, PR_LEADER_ALIGNMENT, PR_LEADER_LENGTH, PR_LEADER_PATTERN, PR_LEADER_PATTERN_WIDTH, PR_LEFT, PR_LETTER_SPACING, PR_LETTER_VALUE, PR_LINE_HEIGHT, PR_LINE_HEIGHT_SHIFT_ADJUSTMENT, PR_LINE_STACKING_STRATEGY, PR_LINEFEED_TREATMENT, PR_MARGIN, PR_MARGIN_BOTTOM, PR_MARGIN_LEFT, PR_MARGIN_RIGHT, PR_MARGIN_TOP, PR_MARKER_CLASS_NAME, PR_MASTER_NAME, PR_MASTER_REFERENCE, PR_MAX_HEIGHT, PR_MAX_WIDTH, PR_MAXIMUM_REPEATS, PR_MEDIA_USAGE, PR_MERGE_PAGES_ACROSS_INDEX_KEY_REFERENCES, PR_MERGE_RANGES_ACROSS_INDEX_KEY_REFERENCES, PR_MERGE_SEQUENTIAL_PAGE_NUMBERS, PR_MIN_HEIGHT, PR_MIN_WIDTH, PR_NUMBER_COLUMNS_REPEATED, PR_NUMBER_COLUMNS_SPANNED, PR_NUMBER_ROWS_SPANNED, PR_ODD_OR_EVEN, PR_ORPHANS, PR_OVERFLOW, PR_PADDING, PR_PADDING_AFTER, PR_PADDING_BEFORE, PR_PADDING_BOTTOM, PR_PADDING_END, PR_PADDING_LEFT, PR_PADDING_RIGHT, PR_PADDING_START, PR_PADDING_TOP, PR_PAGE_BREAK_AFTER, PR_PAGE_BREAK_BEFORE, PR_PAGE_BREAK_INSIDE, PR_PAGE_CITATION_STRATEGY, PR_PAGE_HEIGHT, PR_PAGE_NUMBER_TREATMENT, PR_PAGE_POSITION, PR_PAGE_WIDTH, PR_PAUSE, PR_PAUSE_AFTER, PR_PAUSE_BEFORE, PR_PITCH, PR_PITCH_RANGE, PR_PLAY_DURING, PR_POSITION, PR_PRECEDENCE, PR_PROVISIONAL_DISTANCE_BETWEEN_STARTS, PR_PROVISIONAL_LABEL_SEPARATION, PR_REF_ID, PR_REF_INDEX_KEY, PR_REFERENCE_ORIENTATION, PR_REGION_NAME, PR_REGION_NAME_REFERENCE, PR_RELATIVE_ALIGN, PR_RELATIVE_POSITION, PR_RENDERING_INTENT, PR_RETRIEVE_BOUNDARY, PR_RETRIEVE_BOUNDARY_WITHIN_TABLE, PR_RETRIEVE_CLASS_NAME, PR_RETRIEVE_POSITION, PR_RETRIEVE_POSITION_WITHIN_TABLE, PR_RICHNESS, PR_RIGHT, PR_ROLE, PR_RULE_STYLE, PR_RULE_THICKNESS, PR_SCALING, PR_SCALING_METHOD, PR_SCORE_SPACES, PR_SCRIPT, PR_SHOW_DESTINATION, PR_SIZE, PR_SOURCE_DOCUMENT, PR_SPACE_AFTER, PR_SPACE_BEFORE, PR_SPACE_END, PR_SPACE_START, PR_SPAN, PR_SPEAK, PR_SPEAK_HEADER, PR_SPEAK_NUMERAL, PR_SPEAK_PUNCTUATION, PR_SPEECH_RATE, PR_SRC, PR_START_INDENT, PR_STARTING_STATE, PR_STARTS_ROW, PR_STRESS, PR_SUPPRESS_AT_LINE_BREAK, PR_SWITCH_TO, PR_TABLE_LAYOUT, PR_TABLE_OMIT_FOOTER_AT_BREAK, PR_TABLE_OMIT_HEADER_AT_BREAK, PR_TARGET_PRESENTATION_CONTEXT, PR_TARGET_PROCESSING_CONTEXT, PR_TARGET_STYLESHEET, PR_TEXT_ALIGN, PR_TEXT_ALIGN_LAST, PR_TEXT_ALTITUDE, PR_TEXT_DECORATION, PR_TEXT_DEPTH, PR_TEXT_INDENT, PR_TEXT_SHADOW, PR_TEXT_TRANSFORM, PR_TOP, PR_TREAT_AS_WORD_SPACE, PR_UNICODE_BIDI, PR_VERTICAL_ALIGN, PR_VISIBILITY, PR_VOICE_FAMILY, PR_VOLUME, PR_WHITE_SPACE, PR_WHITE_SPACE_COLLAPSE, PR_WHITE_SPACE_TREATMENT, PR_WIDOWS, PR_WIDTH, PR_WORD_SPACING, PR_WRAP_OPTION, PR_WRITING_MODE, PR_X_ABBREVIATION, PR_X_ALT_TEXT, PR_X_AUTO_TOGGLE, PR_X_BACKGROUND_IMAGE_HEIGHT, PR_X_BACKGROUND_IMAGE_WIDTH, PR_X_BORDER_AFTER_END_RADIUS, PR_X_BORDER_AFTER_RADIUS_END, PR_X_BORDER_AFTER_RADIUS_START, PR_X_BORDER_AFTER_START_RADIUS, PR_X_BORDER_BEFORE_END_RADIUS, PR_X_BORDER_BEFORE_RADIUS_END, PR_X_BORDER_BEFORE_RADIUS_START, PR_X_BORDER_BEFORE_START_RADIUS, PR_X_BORDER_END_RADIUS_AFTER, PR_X_BORDER_END_RADIUS_BEFORE, PR_X_BORDER_RADIUS, PR_X_BORDER_START_RADIUS_AFTER, PR_X_BORDER_START_RADIUS_BEFORE, PR_X_DISABLE_COLUMN_BALANCING, PR_X_HEADER_COLUMN, PR_X_LAYER, PR_X_NUMBER_CONVERSION_FEATURES, PR_X_ORPHAN_CONTENT_LIMIT, PR_X_WIDOW_CONTENT_LIMIT, PR_X_XML_BASE, PR_XML_LANG, PR_Z_INDEX, PROPERTY_COUNT, PROPERTY_MASK -
Constructor Summary
ConstructorsConstructorDescriptionTextLayoutManager(FOText node, FOUserAgent userAgent) Create a Text layout manager. -
Method Summary
Modifier and TypeMethodDescriptionaddALetterSpaceTo(List oldList) Tell the LM to modify its data, adding a letter space to the word fragment represented by the given elements, and returning the corrected elementsaddALetterSpaceTo(List oldList, int depth) Tell the LM to modify its data, adding a letter space to the word fragment represented by the given elements, and returning the corrected elementsvoidaddAreas(PositionIterator posIter, LayoutContext context) Generate and add areas to parent area.private voidaddElementsForAHyphen(List baseList, int alignment, int widthIfBreakOccurs, MinOptMax widthIfNoBreakOccurs, boolean unflagged) private voidaddElementsForASpace(List baseList, int alignment, GlyphMapping mapping, int leafValue) private voidaddElementsForAWordFragment(List baseList, int alignment, GlyphMapping mapping, int leafValue) private voidaddGlyphMapping(int index, GlyphMapping mapping) private voidaddGlyphMapping(GlyphMapping mapping) private voidaddMappingAreas(GlyphMapping mapping, int wordSpaceCount, int letterSpaceCount, int firstMappingIndex, int lastMappingIndex, MinOptMax realWidth, LayoutContext context) booleanapplyChanges(List oldList) Tell the LM to apply the changes due to hyphenationbooleanapplyChanges(List oldList, int depth) Tell the LM to apply the changes due to hyphenationReturns the active change bar list.getChangedKnuthElements(List oldList, int alignment) Get a sequence of KnuthElements representing the content of the node assigned to the LM, after changes have been applied In the context of line breaking, this method is called after hyphenation has been performed, in order to receive the sequence of elements representing the text together with all possible hyphenation points.private ListgetElementsForBreakingSpace(int alignment, GlyphMapping mapping, Position pos2, int p2WidthOffset, Position pos3, int p3WidthOffset, boolean skipZeroCheck) private ListgetElementsForJustifiedText(GlyphMapping mapping, Position pos2, int p2WidthOffset, Position pos3, int p3WidthOffset, boolean skipZeroCheck, int shrinkability) private GlyphMappinggetGlyphMapping(int index) getNextKnuthElements(LayoutContext context, int alignment) Get a sequence of KnuthElements representing the content of the node assigned to the LM.getWordChars(Position pos) Get the word chars corresponding to the given position.voidhyphenate(Position pos, HyphContext hyphContext) Tell the LM to hyphenate a wordvoidinitialize the layout manager.private KnuthBoxprivate KnuthPenaltymakeZeroWidthPenalty(int penaltyValue) private voidprocessLeftoverGlyphMapping(int alignment, KnuthSequence sequence, GlyphMapping mapping, boolean breakOpportunityAfter) private KnuthSequenceprocessLinebreak(List returnList, KnuthSequence sequence) private GlyphMappingprocessWhitespace(int alignment, KnuthSequence sequence, boolean breakOpportunity, int level) private GlyphMappingprocessWord(int alignment, KnuthSequence sequence, GlyphMapping prevMapping, char ch, boolean breakOpportunity, boolean checkEndsWithHyphen, int level, boolean retainControls) private voidremoveGlyphMapping(int index) toString()Methods inherited from class org.apache.fop.layoutmgr.inline.LeafNodeLayoutManager
addChildArea, addKnuthElementsForBorderPaddingEnd, addKnuthElementsForBorderPaddingStart, get, getAllocationIPD, getChangedKnuthElements, getEffectiveArea, getParentArea, makeAlignmentContext, offsetArea, resolved, setCommonBorderPaddingBackground, setCurrentArea, widthAdjustAreaMethods inherited from class org.apache.fop.layoutmgr.AbstractLayoutManager
addChildLM, addChildLMs, addId, checkEndOfLayout, createChildLMs, createNextChildLMs, getBaselineOffset, getChildLM, getChildLMs, getCurrentPage, getCurrentPV, getParent, getPSLM, handlingFloat, hasLineAreaDescendant, hasNextChildLM, isFinished, isFirst, isLast, newNoLineAreaDescendantException, notifyEndOfLayout, notifyPos, possiblyRegisterMarkersForTables, preserveChildrenAtEndOfLayout, recreateChildrenLMs, registerMarkers, reset, setCurrentChildLM, setFinished, setParent, transferExtensionAttachments, transferExtensions, transferForeignAttributesMethods inherited from class org.apache.fop.layoutmgr.AbstractBaseLayoutManager
getAncestorBlockAreaBPD, getAncestorBlockAreaIPD, getBaseLength, getContentAreaBPD, getContentAreaIPD, getFObj, getGeneratesBlockArea, getGeneratesLineArea, getGeneratesReferenceArea, getNextKnuthElements, getParentAreaBPD, getParentAreaIPD, getReferenceAreaBPD, getReferenceAreaIPD, isRestartable, setGeneratesBlockArea, setGeneratesReferenceAreaMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.fop.layoutmgr.LayoutManager
addChildLM, addChildLMs, createNextChildLMs, getBaselineOffset, getChildLMs, getContentAreaBPD, getContentAreaIPD, getFObj, getGeneratesBlockArea, getGeneratesLineArea, getGeneratesReferenceArea, getNextKnuthElements, getParent, getPSLM, hasLineAreaDescendant, isFinished, isRestartable, notifyPos, reset, setFinished, setParentMethods inherited from interface org.apache.fop.datatypes.PercentBaseContext
getBaseLength
-
Field Details
-
SOFT_HYPHEN_PENALTY
private static final int SOFT_HYPHEN_PENALTY- See Also:
-
LOG
private static final org.apache.commons.logging.Log LOGlogging instance -
mappings
-
BREAK_CHARS
Non-space characters on which we can end a line.- See Also:
-
foText
-
letterSpaceAdjustArray
Contains an array of widths to adjust for kerning. The first entry can be used to influence the start position of the first letter. The entry i+1 defines the cursor advancement after the character i. A null entry means no special advancement. -
spaceFont
Font used for the space between words. -
nextStart
private int nextStartStart index of next TextArea -
spaceCharIPD
private int spaceCharIPDsize of a space character (U+0020) glyph in current font -
wordSpaceIPD
-
letterSpaceIPD
-
hyphIPD
private int hyphIPDsize of the hyphen character glyph in current font -
hasChanged
private boolean hasChanged -
returnedIndices
private int[] returnedIndices -
changeOffset
private int changeOffset -
thisStart
private int thisStart -
tempStart
private int tempStart -
changeList
-
alignmentContext
-
lineStartBAP
private int lineStartBAPThe width to be reserved for border and padding at the start of the line. -
lineEndBAP
private int lineEndBAPThe width to be reserved for border and padding at the end of the line. -
keepTogether
private boolean keepTogether -
auxiliaryPosition
-
userAgent
-
-
Constructor Details
-
TextLayoutManager
Create a Text layout manager.- Parameters:
node- The FOText object to be rendered
-
-
Method Details
-
makeZeroWidthPenalty
-
makeAuxiliaryZeroWidthBox
-
initialize
public void initialize()initialize the layout manager. Allows each layout manager to calculate often used values.- Specified by:
initializein interfaceLayoutManager- Overrides:
initializein classAbstractLayoutManager
-
addAreas
Generate and add areas to parent area. This can either generate an area for each TextArea and each space, or an area containing all text with a parameter controlling the size of the word space. The latter is most efficient for PDF generation. Set size of each area.- Specified by:
addAreasin interfaceLayoutManager- Overrides:
addAreasin classLeafNodeLayoutManager- Parameters:
posIter- Iterator over Position information returned by this LayoutManager.context- LayoutContext for adjustments
-
addMappingAreas
private void addMappingAreas(GlyphMapping mapping, int wordSpaceCount, int letterSpaceCount, int firstMappingIndex, int lastMappingIndex, MinOptMax realWidth, LayoutContext context) -
addGlyphMapping
-
addGlyphMapping
-
removeGlyphMapping
private void removeGlyphMapping(int index) -
getGlyphMapping
-
getNextKnuthElements
Get a sequence of KnuthElements representing the content of the node assigned to the LM.- Specified by:
getNextKnuthElementsin interfaceLayoutManager- Overrides:
getNextKnuthElementsin classLeafNodeLayoutManager- Parameters:
context- the LayoutContext used to store layout informationalignment- the desired text alignment- Returns:
- the list of KnuthElements
-
processLinebreak
-
processLeftoverGlyphMapping
private void processLeftoverGlyphMapping(int alignment, KnuthSequence sequence, GlyphMapping mapping, boolean breakOpportunityAfter) -
processWhitespace
private GlyphMapping processWhitespace(int alignment, KnuthSequence sequence, boolean breakOpportunity, int level) -
processWord
private GlyphMapping processWord(int alignment, KnuthSequence sequence, GlyphMapping prevMapping, char ch, boolean breakOpportunity, boolean checkEndsWithHyphen, int level, boolean retainControls) -
addALetterSpaceTo
Tell the LM to modify its data, adding a letter space to the word fragment represented by the given elements, and returning the corrected elements- Specified by:
addALetterSpaceToin interfaceInlineLevelLayoutManager- Overrides:
addALetterSpaceToin classLeafNodeLayoutManager- Parameters:
oldList- the elements which must be given one more letter space- Returns:
- the new elements replacing the old ones
-
addALetterSpaceTo
Tell the LM to modify its data, adding a letter space to the word fragment represented by the given elements, and returning the corrected elements Only TextLM has a meaningful implementation of this method- Specified by:
addALetterSpaceToin interfaceInlineLevelLayoutManager- Overrides:
addALetterSpaceToin classLeafNodeLayoutManager- Parameters:
oldList- the elements which must be given one more letter spacedepth- the depth at which the Positions for this LM in oldList are found- Returns:
- the new elements replacing the old ones
-
hyphenate
Tell the LM to hyphenate a word- Specified by:
hyphenatein interfaceInlineLevelLayoutManager- Overrides:
hyphenatein classLeafNodeLayoutManager- Parameters:
pos- the Position referring to the wordhyphContext- the HyphContext storing hyphenation information
-
applyChanges
Tell the LM to apply the changes due to hyphenation- Specified by:
applyChangesin interfaceInlineLevelLayoutManager- Overrides:
applyChangesin classLeafNodeLayoutManager- Parameters:
oldList- the list of the old elements the changes refer to- Returns:
- true if the LM had to change its data, false otherwise
-
applyChanges
Tell the LM to apply the changes due to hyphenation Only TextLM has a meaningful implementation of this method- Specified by:
applyChangesin interfaceInlineLevelLayoutManager- Overrides:
applyChangesin classLeafNodeLayoutManager- Parameters:
oldList- the list of the old elements the changes refer todepth- the depth at which the Positions for this LM in oldList are found- Returns:
- true if the LM had to change its data, false otherwise
-
getChangedKnuthElements
Get a sequence of KnuthElements representing the content of the node assigned to the LM, after changes have been applied In the context of line breaking, this method is called after hyphenation has been performed, in order to receive the sequence of elements representing the text together with all possible hyphenation points. For example, if the text "representation" originates a single box element when getNextKnuthElements() is called, it will be now split in syllables (rep-re-sen-ta-tion) each one originating a box and divided by additional elements allowing a line break. In the context of page breaking, this method is called only if the pages need to be "vertically justified" modifying (also) the quantity of lines created by the paragraphs, and after a first page breaking has been performed. According to the result of the first page breaking, each paragraph now knows how many lines it must create (among the existing layout possibilities) and has to create a sequence of elements representing this layout; in particular, each box, representing a line, will contain a LineBreakPositions that will be used in the addAreas() phase. LMs having children look at the old list of elements in order to know which ones they must get the new elements from, as break conditions of preserved linefeeds can divide children into smaller groups (page sequences or paragraphs). LMs having no children can simply return the old elements if they have nothing to change. Inline LMs need to know the text alignment because it affects the elements representing feasible breaks between syllables.- Specified by:
getChangedKnuthElementsin interfaceLayoutManager- Overrides:
getChangedKnuthElementsin classLeafNodeLayoutManager- Parameters:
oldList- the elements to replacealignment- the desired text alignment- Returns:
- the updated list of KnuthElements
-
getWordChars
Get the word chars corresponding to the given position.- Specified by:
getWordCharsin interfaceInlineLevelLayoutManager- Overrides:
getWordCharsin classLeafNodeLayoutManager- Parameters:
pos- the position referring to the needed word chars.- Returns:
- the word chars
-
addElementsForASpace
private void addElementsForASpace(List baseList, int alignment, GlyphMapping mapping, int leafValue) -
getElementsForBreakingSpace
private List getElementsForBreakingSpace(int alignment, GlyphMapping mapping, Position pos2, int p2WidthOffset, Position pos3, int p3WidthOffset, boolean skipZeroCheck) -
getElementsForJustifiedText
private List getElementsForJustifiedText(GlyphMapping mapping, Position pos2, int p2WidthOffset, Position pos3, int p3WidthOffset, boolean skipZeroCheck, int shrinkability) -
addElementsForAWordFragment
private void addElementsForAWordFragment(List baseList, int alignment, GlyphMapping mapping, int leafValue) -
addElementsForAHyphen
-
getChangeBarList
Description copied from class:AbstractBaseLayoutManagerReturns the active change bar list.- Overrides:
getChangeBarListin classAbstractBaseLayoutManager- Returns:
- The active change bar list
-
toString
- Overrides:
toStringin classAbstractLayoutManager
-