diff options
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"), |
