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 | 19 |
1 files changed, 18 insertions, 1 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 f6a9863..412ca23 100644 --- a/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java +++ b/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java @@ -245,10 +245,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, children)).appendExtra(); + (style, children) -> new Paragraph(style, numbering, indent, children)).appendExtra(); } private ReadResult readFieldChar(XmlElement element) { @@ -323,6 +324,22 @@ class StatefulBodyXmlReader { numbering::findLevel); } + private ParagraphIndent readParagraphIndent(XmlElementLike properties) { + XmlElementLike indent = properties.findChildOrEmpty("w:ind"); + return new ParagraphIndent( + Optionals.first( + indent.getAttributeOrNone("w:start"), + indent.getAttributeOrNone("w:left") + ), + Optionals.first( + indent.getAttributeOrNone("w:end"), + indent.getAttributeOrNone("w:right") + ), + indent.getAttributeOrNone("w:firstLine"), + indent.getAttributeOrNone("w:hanging") + ); + } + private ReadResult readBreak(XmlElement element) { String breakType = element.getAttributeOrNone("w:type").orElse("textWrapping"); switch (breakType) { |
