Author: fanningpj
Date: Sun May 11 13:26:06 2025
New Revision: 1925500
URL: http://svn.apache.org/viewvc?rev=1925500&view=rev
Log:
try to avoid class cast issues
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTextParagraph.java
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTextRun.java
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTextParagraph.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTextParagraph.java?rev=1925500&r1=1925499&r2=1925500&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTextParagraph.java
(original)
+++
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTextParagraph.java
Sun May 11 13:26:06 2025
@@ -578,9 +578,16 @@ public class XSSFTextParagraph implement
if(lnSpc > 0) {
// check if the percentage value is scaled
CTTextNormalAutofit normAutofit =
_shape.getTxBody().getBodyPr().getNormAutofit();
- if(normAutofit != null) {
- double scale = 1 - (double)normAutofit.getLnSpcReduction() /
100000;
- lnSpc *= scale;
+ if(normAutofit != null && normAutofit.isSetLnSpcReduction()) {
+ final Object lnSpcReduction = normAutofit.getLnSpcReduction();
+ final int divisor = 100000;
+ if (lnSpcReduction instanceof Number) {
+ double scale = 1 - ((Number) lnSpcReduction).doubleValue()
/ divisor;
+ lnSpc *= scale;
+ } else if (lnSpcReduction instanceof String) {
+ double scale = 1 - Double.parseDouble((String)
lnSpcReduction) / divisor;
+ lnSpc *= scale;
+ }
}
}
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTextRun.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTextRun.java?rev=1925500&r1=1925499&r2=1925500&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTextRun.java
(original)
+++
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFTextRun.java
Sun May 11 13:26:06 2025
@@ -130,7 +130,15 @@ public class XSSFTextRun {
double scale = 1;
double size = XSSFFont.DEFAULT_FONT_SIZE; // default font size
CTTextNormalAutofit afit =
getParentParagraph().getParentShape().getTxBody().getBodyPr().getNormAutofit();
- if(afit != null) scale = (double)afit.getFontScale() / 100000;
+ if (afit != null && afit.isSetFontScale()) {
+ final Object fs = afit.getFontScale();
+ final int divisor = 100000;
+ if (fs instanceof Number) {
+ scale = ((Number) fs).doubleValue() / divisor;
+ } else if (fs instanceof String) {
+ scale = Double.parseDouble((String) fs) / divisor;
+ }
+ }
CTTextCharacterProperties rPr = getRPrOrNull();
if(rPr != null && rPr.isSetSz()){
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]