diff options
| author | Michael Williamson <mike@zwobble.org> | 2014-09-27 09:26:38 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2014-09-27 09:26:38 +0100 |
| commit | 92be647aab6949d504f60a54099454e527009cf7 (patch) | |
| tree | 29b5a7ac454e6d9e65ed9063998f81837bdfff82 | |
| parent | 1d6649a1bbe30cd4816387214d7442772c1542cc (diff) | |
Extract readRunProperties function
| -rw-r--r-- | lib/docx/document-xml-reader.js | 58 |
1 files changed, 32 insertions, 26 deletions
diff --git a/lib/docx/document-xml-reader.js b/lib/docx/document-xml-reader.js index 79e60f8..97241a7 100644 --- a/lib/docx/document-xml-reader.js +++ b/lib/docx/document-xml-reader.js @@ -62,6 +62,37 @@ function DocumentXmlReader(options) { return new Result([]); } + function readRunProperties(element) { + var properties = { + type: "runProperties" + }; + + readRunStyle(properties, element); + + var verticalAlignmentElement = element.first("w:vertAlign"); + if (verticalAlignmentElement) { + properties.verticalAlignment = verticalAlignmentElement.attributes["w:val"]; + } + + properties.isBold = !!element.first("w:b"); + properties.isUnderline = !!element.first("w:u"); + properties.isItalic = !!element.first("w:i"); + + return new Result(properties); + } + + function readRunStyle(properties, element) { + var styleElement = element.first("w:rStyle"); + if (styleElement) { + var styleId = styleElement.attributes["w:val"]; + properties.styleId = styleId; + if (styleId) { + var style = styles.findCharacterStyleById(styleId); + properties.styleName = style.name; + } + } + } + function readChildElements(element) { return readXmlElements(element.children); } @@ -116,32 +147,7 @@ function DocumentXmlReader(options) { ); }); }, - "w:rPr": function(element) { - var properties = { - type: "runProperties" - }; - - var styleElement = element.first("w:rStyle"); - if (styleElement) { - var styleId = styleElement.attributes["w:val"]; - properties.styleId = styleId; - if (styleId) { - var style = styles.findCharacterStyleById(styleId); - properties.styleName = style.name; - } - } - - var verticalAlignmentElement = element.first("w:vertAlign"); - if (verticalAlignmentElement) { - properties.verticalAlignment = verticalAlignmentElement.attributes["w:val"]; - } - - properties.isBold = !!element.first("w:b"); - properties.isUnderline = !!element.first("w:u"); - properties.isItalic = !!element.first("w:i"); - - return new Result(properties); - }, + "w:rPr": readRunProperties, "w:t": function(element) { return new Result(new documents.Text(element.text())); }, |
