1
使用iText 7(7.0.2),如何找到包含需要不同字體的字符的字符串的寬度?In Itext 7找到需要多種字體的字符串的寬度
例如,在下面的代碼中,有英文和俄文兩種字符。我想根據由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方法,我需要遍歷字符串的各部分,並根據所使用的字體累加每個字符串的長度。尋找一個如何做到這一點的例子。
謝謝!比我想象的要簡單。欣賞基於1000的寬度和字體大小的解釋。 –
如何知道首選字體? –
@JoeEltgroth,如果你不知道首選字體,你可以傳遞任何字符串,甚至是空字符串。首選字體就像在HTML中指定font-family一樣。另一種字體將用於「首選」字體無法呈現所需字形的情況。但是,如果你在你的字體提供者中有「Arial」和「Times New Roman」,並且你將「Arial」設置爲首選字體,那麼Arial將具有更高的優先級, –