Package com.openhtmltopdf.layout
Class Breaker
java.lang.Object
com.openhtmltopdf.layout.Breaker
A utility class that scans the text of a single inline box, looking for the
next break point.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
static enum
private static class
private static class
static interface
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final char
static final Breaker.TextBreakerSupplier
static final Breaker.TextBreakerSupplier
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic void
breakFirstLetter
(LayoutContext c, LineBreakContext context, int avail, CalculatedStyle style) static Breaker.BreakTextResult
breakText
(LayoutContext c, LineBreakContext context, int avail, CalculatedStyle style, boolean tryToBreakAnywhere, int lineWidth, boolean forceOutput) (package private) static LineBreakContext.LineBreakResult
doBreakCharacters
(String currentString, FSTextBreaker lineIterator, FSTextBreaker charIterator, LineBreakContext context, int avail, float letterSpacing, ToIntFunction<String> measurer) Breaks at most one word (until the next word break) going character by character to see what will fit in.private static LineBreakContext.LineBreakResult
doBreakText
(LayoutContext c, LineBreakContext context, int avail, CalculatedStyle style, boolean tryToBreakAnywhere) doBreakText
(LayoutContext c, LineBreakContext context, int avail, CalculatedStyle style, Breaker.TextBreakerSupplier lineBreaker) (package private) static LineBreakContext.LineBreakResult
doBreakTextWords
(String currentString, LineBreakContext context, int avail, FSTextBreaker iterator, float letterSpacing, ToIntFunction<String> measurer) static FSTextBreaker
getCharacterBreakStream
(String currentString, SharedContext sharedContext) private static int
getFirstLetterEnd
(String text, int start) static FSTextBreaker
getLineBreakStream
(String s, SharedContext shared) static int
getTextWidthWithLetterSpacing
(CssContext c, FSFont font, String text, float letterSpacing) Gets the width of a string with letter spacing factored in.private static Breaker.BreakTextResult
Converts a LineBreakResult returned from doBreakText in word-wrapping mode to a BreakTextResult.
-
Field Details
-
SOFT_HYPHEN
public static final char SOFT_HYPHEN- See Also:
-
STANDARD_CHARACTER_BREAKER
-
STANDARD_LINE_BREAKER
-
-
Constructor Details
-
Breaker
public Breaker()
-
-
Method Details
-
breakFirstLetter
public static void breakFirstLetter(LayoutContext c, LineBreakContext context, int avail, CalculatedStyle style) -
getFirstLetterEnd
-
breakText
public static Breaker.BreakTextResult breakText(LayoutContext c, LineBreakContext context, int avail, CalculatedStyle style, boolean tryToBreakAnywhere, int lineWidth, boolean forceOutput) -
toBreakTextResult
Converts a LineBreakResult returned from doBreakText in word-wrapping mode to a BreakTextResult. Throws a runtime exception if unexpected result found. -
doBreakText
private static LineBreakContext.LineBreakResult doBreakText(LayoutContext c, LineBreakContext context, int avail, CalculatedStyle style, boolean tryToBreakAnywhere) -
doBreakCharacters
static LineBreakContext.LineBreakResult doBreakCharacters(String currentString, FSTextBreaker lineIterator, FSTextBreaker charIterator, LineBreakContext context, int avail, float letterSpacing, ToIntFunction<String> measurer) Breaks at most one word (until the next word break) going character by character to see what will fit in. -
doBreakText
public static LineBreakContext.LineBreakResult doBreakText(LayoutContext c, LineBreakContext context, int avail, CalculatedStyle style, Breaker.TextBreakerSupplier lineBreaker) -
doBreakTextWords
static LineBreakContext.LineBreakResult doBreakTextWords(String currentString, LineBreakContext context, int avail, FSTextBreaker iterator, float letterSpacing, ToIntFunction<String> measurer) -
getTextWidthWithLetterSpacing
public static int getTextWidthWithLetterSpacing(CssContext c, FSFont font, String text, float letterSpacing) Gets the width of a string with letter spacing factored in. Favor this method over using the text renderer directly.
-