Package com.openhtmltopdf.layout
Class Breaker
- java.lang.Object
-
- com.openhtmltopdf.layout.Breaker
-
public class Breaker extends java.lang.ObjectA utility class that scans the text of a single inline box, looking for the next break point.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classBreaker.AppBreakOpportunitystatic classBreaker.BreakTextResultprivate static classBreaker.CharacterBreakerSupplierprivate static classBreaker.LineBreakerSupplierstatic interfaceBreaker.TextBreakerSupplier
-
Field Summary
Fields Modifier and Type Field Description static charSOFT_HYPHENstatic Breaker.TextBreakerSupplierSTANDARD_CHARACTER_BREAKERstatic Breaker.TextBreakerSupplierSTANDARD_LINE_BREAKER
-
Constructor Summary
Constructors Constructor Description Breaker()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidbreakFirstLetter(LayoutContext c, LineBreakContext context, int avail, CalculatedStyle style)static Breaker.BreakTextResultbreakText(LayoutContext c, LineBreakContext context, int avail, CalculatedStyle style, boolean tryToBreakAnywhere, int lineWidth, boolean forceOutput)(package private) static LineBreakContext.LineBreakResultdoBreakCharacters(java.lang.String currentString, FSTextBreaker lineIterator, FSTextBreaker charIterator, LineBreakContext context, int avail, float letterSpacing, java.util.function.ToIntFunction<java.lang.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.LineBreakResultdoBreakText(LayoutContext c, LineBreakContext context, int avail, CalculatedStyle style, boolean tryToBreakAnywhere)static LineBreakContext.LineBreakResultdoBreakText(LayoutContext c, LineBreakContext context, int avail, CalculatedStyle style, Breaker.TextBreakerSupplier lineBreaker)(package private) static LineBreakContext.LineBreakResultdoBreakTextWords(java.lang.String currentString, LineBreakContext context, int avail, FSTextBreaker iterator, float letterSpacing, java.util.function.ToIntFunction<java.lang.String> measurer)static FSTextBreakergetCharacterBreakStream(java.lang.String currentString, SharedContext sharedContext)private static intgetFirstLetterEnd(java.lang.String text, int start)static FSTextBreakergetLineBreakStream(java.lang.String s, SharedContext shared)static intgetTextWidthWithLetterSpacing(CssContext c, FSFont font, java.lang.String text, float letterSpacing)Gets the width of a string with letter spacing factored in.private static Breaker.BreakTextResulttoBreakTextResult(LineBreakContext.LineBreakResult res)Converts a LineBreakResult returned from doBreakText in word-wrapping mode to a BreakTextResult.
-
-
-
Field Detail
-
SOFT_HYPHEN
public static final char SOFT_HYPHEN
- See Also:
- Constant Field Values
-
STANDARD_CHARACTER_BREAKER
public static final Breaker.TextBreakerSupplier STANDARD_CHARACTER_BREAKER
-
STANDARD_LINE_BREAKER
public static final Breaker.TextBreakerSupplier STANDARD_LINE_BREAKER
-
-
Method Detail
-
breakFirstLetter
public static void breakFirstLetter(LayoutContext c, LineBreakContext context, int avail, CalculatedStyle style)
-
getFirstLetterEnd
private static int getFirstLetterEnd(java.lang.String text, int start)
-
breakText
public static Breaker.BreakTextResult breakText(LayoutContext c, LineBreakContext context, int avail, CalculatedStyle style, boolean tryToBreakAnywhere, int lineWidth, boolean forceOutput)
-
toBreakTextResult
private static Breaker.BreakTextResult toBreakTextResult(LineBreakContext.LineBreakResult res)
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(java.lang.String currentString, FSTextBreaker lineIterator, FSTextBreaker charIterator, LineBreakContext context, int avail, float letterSpacing, java.util.function.ToIntFunction<java.lang.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(java.lang.String currentString, LineBreakContext context, int avail, FSTextBreaker iterator, float letterSpacing, java.util.function.ToIntFunction<java.lang.String> measurer)
-
getCharacterBreakStream
public static FSTextBreaker getCharacterBreakStream(java.lang.String currentString, SharedContext sharedContext)
-
getLineBreakStream
public static FSTextBreaker getLineBreakStream(java.lang.String s, SharedContext shared)
-
getTextWidthWithLetterSpacing
public static int getTextWidthWithLetterSpacing(CssContext c, FSFont font, java.lang.String text, float letterSpacing)
Gets the width of a string with letter spacing factored in. Favor this method over using the text renderer directly.
-
-