diff options
| author | Michael Williamson <mike@zwobble.org> | 2017-11-03 16:42:20 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2017-11-03 16:42:20 +0000 |
| commit | bd7b2c824134447145daa49717930a9a50a56aab (patch) | |
| tree | 90525f65a78bd0b84b642f36b5ca82aa52d4c4fe /src/main | |
| parent | 88190179bfdea131cc92ad2d208e92db2d651acc (diff) | |
Read table style applied to tables
Diffstat (limited to 'src/main')
| -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) { |
