diff options
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/documents/Table.java | 9 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java | 15 |
2 files changed, 20 insertions, 4 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/documents/Table.java b/src/main/java/org/zwobble/mammoth/internal/documents/Table.java index 031b382..c58808c 100644 --- a/src/main/java/org/zwobble/mammoth/internal/documents/Table.java +++ b/src/main/java/org/zwobble/mammoth/internal/documents/Table.java @@ -1,14 +1,21 @@ package org.zwobble.mammoth.internal.documents; import java.util.List; +import java.util.Optional; public class Table implements DocumentElement, HasChildren { + private final Optional<Style> style; private final List<DocumentElement> children; - public Table(List<DocumentElement> children) { + public Table(Optional<Style> style, List<DocumentElement> children) { + this.style = style; this.children = children; } + public Optional<Style> getStyle() { + return style; + } + @Override public List<DocumentElement> getChildren() { return children; diff --git a/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java b/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java index 464884a..f6a9863 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java @@ -338,9 +338,18 @@ class StatefulBodyXmlReader { } private ReadResult readTable(XmlElement element) { - return readElements(element.getChildren()) - .flatMap(this::calculateRowspans) - .map(Table::new); + XmlElementLike properties = element.findChildOrEmpty("w:tblPr"); + return ReadResult.map( + readTableStyle(properties), + readElements(element.getChildren()) + .flatMap(this::calculateRowspans), + + Table::new + ); + } + + private InternalResult<Optional<Style>> readTableStyle(XmlElementLike properties) { + return readStyle(properties, "w:tblStyle", "Table", styles::findTableStyleById); } private ReadResult calculateRowspans(List<DocumentElement> rows) { |
