Word wrap text to fit a Graphics2D rectangle with options to find the optimum font size and/or overflow into additional rectangles
b2f39378e8
Bumps [junit-jupiter](https://github.com/junit-team/junit5) from 5.7.1 to 5.7.2. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/compare/r5.7.1...r5.7.2) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
---|---|---|
.github | ||
src | ||
.gitignore | ||
LICENSE | ||
pom.xml | ||
README.md |
text-wrap-fit-box
Word wrap text to fit a Graphics2D rectangle with options to find the optimum font size and/or overflow into additional rectangles.
<dependency>
<groupId>net.kemitix</groupId>
<artifactId>text-wrap-fit-box</artifactId>
<version>${text-wrap-fit-box.version}</version>
</dependency>
Requirements
- JDK 11+
Usage
Word Wrap
Splits the input String
into a List
of String
s that fits within the
imageWidth
when drawn using the font
onto the graphics2D
.
import net.kemitix.fit.TextFit;
import net.kemitix.fit.WordWrapper;
Font font = ...
Graphics2D graphics2D = ...
int imageWidth = ...
String inputString = ....
WordWrapper wrapper = TextFit.wrapper();
List<String> lines = wrapper.wrap(inputString, font, graphics2D, imageWidth);
Box Fit
Finds the optimum fontSize
to fill the box
with the inputString
when drawn
using the graphics2D
.
import net.kemitix.fit.TextFit;
import net.kemitix.fit.BoxFitter;
Function<Integer, Font> fontFactory = size -> ....
Graphics2D graphics2D = ...
Rectangle2D box = new Rectangle(....);
String inputString = ....
BoxFitter fitter = TextFit.fitter();
int fontSize = fitter.fit(inputString, fontFactory, graphics2D, box);
Font font = fontFactory.apply(fontSize);
int imageWidth = (int) box.getWidth();
WordWrapper wrapper = TextFit.wrapper();
List<String> lines = wrapper.wrap(inputString, font, graphics2D, imageWidth);