【发布时间】:2017-04-12 15:29:46
【问题描述】:
使用 iText 7 (7.0.2),如何找到包含需要不同字体的字符的字符串的宽度?
例如,在下面的代码中,有英文和俄文字符。我想根据 FontProvider 分配给每个字符的字体来查找该字符串的宽度。
String s = "Hello world! Здравствуй мир! Hello world! Здравствуй мир!";
FontProvider sel = new FontProvider();
sel.addFont(fontsFolder + "NotoSans-Regular.ttf");
sel.addFont(fontsFolder + "Puritan2.otf");
如果字符串只有可以用一种字体呈现的字符,我可以这样做:
PdfFont font = PdfFontFactory.createFont(fontsFolder + "Puritan2.otf", PdfEncodings.IDENTITY_H, true);
font.getWidth(s, 12f);
鉴于 FontProvider 本身没有 getWidth 方法,我需要遍历字符串的各个部分,并根据所使用的字体将每个部分的长度相加。寻找如何做到这一点的例子。
【问题讨论】: