aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java b/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java
index e4c5b5f..fdbeee1 100644
--- a/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java
+++ b/src/main/java/org/zwobble/mammoth/internal/docx/BodyXmlReader.java
@@ -146,19 +146,27 @@ public class BodyXmlReader {
}
private boolean isBold(XmlElementLike properties) {
- return properties.hasChild("w:b");
+ return readBooleanElement(properties, "w:b");
}
private boolean isItalic(XmlElementLike properties) {
- return properties.hasChild("w:i");
+ return readBooleanElement(properties, "w:i");
}
private boolean isUnderline(XmlElementLike properties) {
- return properties.hasChild("w:u");
+ return readBooleanElement(properties, "w:u");
}
private boolean isStrikethrough(XmlElementLike properties) {
- return properties.hasChild("w:strike");
+ return readBooleanElement(properties, "w:strike");
+ }
+
+ private boolean readBooleanElement(XmlElementLike properties, String tagName) {
+ return properties.findChild(tagName)
+ .map(child -> child.getAttributeOrNone("w:val")
+ .map(value -> !value.equals("false") && !value.equals("0"))
+ .orElse(true))
+ .orElse(false);
}
private VerticalAlignment readVerticalAlignment(XmlElementLike properties) {