aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2017-11-23 20:45:24 +0000
committerMichael Williamson <mike@zwobble.org>2017-11-23 20:45:24 +0000
commit7abf1e89a6d9846e2fb3bc8f04e4ca51fe06a511 (patch)
tree3ae0abc0c1b4919cc7bdc949183518cf2477a706 /src/main/java/org/zwobble/mammoth/internal/docx/StatefulBodyXmlReader.java
parentc46102917dbd63f454f4782effbe239e63c67400 (diff)
Parse paragraph indents
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.java19
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) {