diff options
| author | Michael Williamson <mike@zwobble.org> | 2021-01-09 17:25:55 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2021-01-09 17:25:55 +0000 |
| commit | 437a3029d872ec5f2113aa6e074567de7fd2d61f (patch) | |
| tree | 1ab117b3ca019f6232d842113e45f5097107d419 /src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java | |
| parent | e65a011e679931377af77793fc36b671766c4118 (diff) | |
Support numbering defined by paragraph style
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java')
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java | 13 |
1 files changed, 10 insertions, 3 deletions
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 9c270de..0cf141e 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java @@ -256,12 +256,11 @@ class StatefulBodyXmlReader { private ReadResult readParagraph(XmlElement element) { XmlElementLike properties = element.findChildOrEmpty("w:pPr"); - Optional<NumberingLevel> numbering = readNumbering(properties); ParagraphIndent indent = readParagraphIndent(properties); return ReadResult.map( readParagraphStyle(properties), readElements(element.getChildren()), - (style, children) -> new Paragraph(style, numbering, indent, children)).appendExtra(); + (style, children) -> new Paragraph(style, readNumbering(style, properties), indent, children)).appendExtra(); } private ReadResult readFieldChar(XmlElement element) { @@ -328,7 +327,15 @@ class StatefulBodyXmlReader { } - private Optional<NumberingLevel> readNumbering(XmlElementLike properties) { + private Optional<NumberingLevel> readNumbering(Optional<Style> style, XmlElementLike properties) { + if (style.isPresent()) { + String styleId = style.get().getStyleId(); + Optional<NumberingLevel> level = numbering.findLevelByParagraphStyleId(styleId); + if (level.isPresent()) { + return level; + } + } + XmlElementLike numberingProperties = properties.findChildOrEmpty("w:numPr"); return Optionals.flatMap( readVal(numberingProperties, "w:numId"), |
