diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-02-13 23:42:39 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-02-13 23:42:39 +0000 |
| commit | 1125370d5c99f940f6502374cf5a6a4d4176dec6 (patch) | |
| tree | 0116a4c68d15e44365c06315e42609c4175b5abf | |
| parent | 45ced503abb4ad1916c4c655578a7b06a5636cd8 (diff) | |
Read vertical alignment of runs
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java | 11 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java | 20 |
2 files changed, 30 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java index 2a1f693..65cbc82 100644 --- a/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/docx/BodyXmlReader.java @@ -157,7 +157,16 @@ public class BodyXmlReader { } private VerticalAlignment readVerticalAlignment(XmlElementLike properties) { - return VerticalAlignment.BASELINE; + String verticalAlignment = readVal(properties, "w:vertAlign").orElse(""); + switch (verticalAlignment) { + case "superscript": + return VerticalAlignment.SUPERSCRIPT; + case "subscript": + return VerticalAlignment.SUBSCRIPT; + default: + // TODO: warn if set? + return VerticalAlignment.BASELINE; + } } private Result<Optional<Style>> readRunStyle(XmlElementLike properties) { diff --git a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java index d06a6a4..517773c 100644 --- a/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/docx/BodyXmlTests.java @@ -267,6 +267,26 @@ public class BodyXmlTests { } @Test + public void runIsSuperscriptIfVerticalAlignmentPropertyIsSetToSuperscript() { + XmlElement element = runXmlWithProperties( + element("w:vertAlign", map("w:val", "superscript"))); + + assertThat( + readSuccess(a(bodyReader), element), + hasProperty("verticalAlignment", equalTo(VerticalAlignment.SUPERSCRIPT))); + } + + @Test + public void runIsSubscriptIfVerticalAlignmentPropertyIsSetToSubscript() { + XmlElement element = runXmlWithProperties( + element("w:vertAlign", map("w:val", "subscript"))); + + assertThat( + readSuccess(a(bodyReader), element), + hasProperty("verticalAlignment", equalTo(VerticalAlignment.SUBSCRIPT))); + } + + @Test public void canReadTabElement() { XmlElement element = element("w:tab"); |
