From e81e6058871d963808f5ce06ee46584c110ecb75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Prante?= Date: Fri, 18 Oct 2024 14:39:18 +0200 Subject: [PATCH] use always trimmed text so that getSelectedFont() works --- gradle.properties | 2 +- .../pdfbox/layout/text/StyledText.java | 20 ++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/gradle.properties b/gradle.properties index 370d4d2..f99bd3c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ group = org.xbib.graphics name = graphics -version = 5.5.2 +version = 5.5.3 diff --git a/graphics-pdfbox-layout/src/main/java/org/xbib/graphics/pdfbox/layout/text/StyledText.java b/graphics-pdfbox-layout/src/main/java/org/xbib/graphics/pdfbox/layout/text/StyledText.java index e04bfc8..7f55ef2 100644 --- a/graphics-pdfbox-layout/src/main/java/org/xbib/graphics/pdfbox/layout/text/StyledText.java +++ b/graphics-pdfbox-layout/src/main/java/org/xbib/graphics/pdfbox/layout/text/StyledText.java @@ -119,15 +119,14 @@ public class StyledText implements TextFragment { return getFontDescriptor().getSize(); } - /** - * @return the ascent of the associated font. - * @throws IOException by pdfbox. - */ public float getAscent() throws IOException { - if (text == null || text.isEmpty()) { + if (text == null) { return 0f; } - return getFontDescriptor().getSize() * getFontDescriptor().getSelectedFont(text).getFontDescriptor().getAscent() / 1000; + if (text.trim().isEmpty()) { + return 0f; + } + return getFontDescriptor().getSize() * getFontDescriptor().getSelectedFont(text.trim()).getFontDescriptor().getAscent() / 1000; } public float getBaselineOffset() { @@ -182,13 +181,16 @@ public class StyledText implements TextFragment { } private static float getWidth(FontDescriptor fontDescriptor, String text) { - if (text == null || text.isEmpty()) { + if (text == null) { + return 0f; + } + if (text.trim().isEmpty()) { return 0f; } try { - return fontDescriptor.getSize() * fontDescriptor.getSelectedFont(text).getStringWidth(text) / 1000; + return fontDescriptor.getSize() * fontDescriptor.getSelectedFont(text.trim()).getStringWidth(text.trim()) / 1000; } catch (Exception e) { - logger.log(Level.WARNING, "text = " + text + " " + e.getMessage(), e); + logger.log(Level.WARNING, "text = '" + text.trim() + "' " + e.getMessage(), e); return 0f; } }