Author: tilman Date: Thu Aug 21 10:35:42 2025 New Revision: 1927942 Log: PDFBOX-5660: optimize, as suggested by Valery Bokov; closes #219
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java ============================================================================== --- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java Thu Aug 21 09:59:44 2025 (r1927941) +++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/AppearanceGeneratorHelper.java Thu Aug 21 10:35:42 2025 (r1927942) @@ -859,18 +859,19 @@ class AppearanceGeneratorHelper { // Acrobat defaults to 12 for multiline text with size 0 return DEFAULT_FONT_SIZE; } else { - float yScalingFactor = FONTSCALE * font.getFontMatrix().getScaleY(); - float xScalingFactor = FONTSCALE * font.getFontMatrix().getScaleX(); + Matrix fontMatrix = font.getFontMatrix(); + float yScalingFactor = FONTSCALE * fontMatrix.getScaleY(); + float xScalingFactor = FONTSCALE * fontMatrix.getScaleX(); // fit width - float width = font.getStringWidth(value) * font.getFontMatrix().getScaleX(); + float width = font.getStringWidth(value) * fontMatrix.getScaleX(); float widthBasedFontSize = contentRect.getWidth() / width * xScalingFactor; // fit height float height = (font.getFontDescriptor().getCapHeight() + -font.getFontDescriptor().getDescent()) - * font.getFontMatrix().getScaleY(); + * fontMatrix.getScaleY(); if (height <= 0) { - height = font.getBoundingBox().getHeight() * font.getFontMatrix().getScaleY(); + height = font.getBoundingBox().getHeight() * fontMatrix.getScaleY(); } float heightBasedFontSize = contentRect.getHeight() / height * yScalingFactor;