aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2021-01-09 17:25:55 +0000
committerMichael Williamson <mike@zwobble.org>2021-01-09 17:25:55 +0000
commit437a3029d872ec5f2113aa6e074567de7fd2d61f (patch)
tree1ab117b3ca019f6232d842113e45f5097107d419 /src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java
parente65a011e679931377af77793fc36b671766c4118 (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.java13
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"),