diff options
| author | Michael Williamson <mike@zwobble.org> | 2017-11-03 16:19:28 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2017-11-03 16:19:28 +0000 |
| commit | c378280e344dd6209ec41975b4c879d297ad76f9 (patch) | |
| tree | 3fca2fd67a1554c8446577b1606c4187fb32668d /lib | |
| parent | b6514e40cf8a8a84ca7d341465b3e9fe439be24f (diff) | |
Read table style applied to tables
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/documents.js | 7 | ||||
| -rw-r--r-- | lib/docx/body-reader.js | 20 |
2 files changed, 24 insertions, 3 deletions
diff --git a/lib/documents.js b/lib/documents.js index a6d5dd0..100d004 100644 --- a/lib/documents.js +++ b/lib/documents.js @@ -148,10 +148,13 @@ function Image(options) { }; } -function Table(children) { +function Table(children, properties) { + properties = properties || {}; return { type: types.table, - children: children + children: children, + styleId: properties.styleId || null, + styleName: properties.styleName || null }; } diff --git a/lib/docx/body-reader.js b/lib/docx/body-reader.js index c612e5c..e21b422 100644 --- a/lib/docx/body-reader.js +++ b/lib/docx/body-reader.js @@ -81,6 +81,10 @@ function BodyReader(options) { return readStyle(element, "w:rStyle", "Run", styles.findCharacterStyleById); } + function readTableStyle(element) { + return readStyle(element, "w:tblStyle", "Table", styles.findTableStyleById); + } + function readStyle(element, styleTagName, styleType, findStyleById) { var messages = []; var styleElement = element.first(styleTagName); @@ -293,9 +297,23 @@ function BodyReader(options) { function readTable(element) { + var propertiesResult = readTableProperties(element.firstOrEmpty("w:tblPr")); return readXmlElements(element.children) .flatMap(calculateRowSpans) - .map(documents.Table); + .flatMap(function(children) { + return propertiesResult.map(function(properties) { + return documents.Table(children, properties); + }); + }); + } + + function readTableProperties(element) { + return readTableStyle(element).map(function(style) { + return { + styleId: style.styleId, + styleName: style.name + }; + }); } function readTableRow(element) { |
