diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-11-28 18:05:43 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-11-28 18:05:43 +0000 |
| commit | 481d5860686b6b02b5536d7455b88baf7325ecfd (patch) | |
| tree | 70b31e54c2e03b4b6c8894a50241b75cc63ff48a | |
| parent | cdfeaf4b15e7161a0eae4bcb3df868d709db10ad (diff) | |
Parse page and column break types
| -rw-r--r-- | lib/docx/body-reader.js | 10 | ||||
| -rw-r--r-- | test/docx/body-reader.tests.js | 18 |
2 files changed, 25 insertions, 3 deletions
diff --git a/lib/docx/body-reader.js b/lib/docx/body-reader.js index c4a61f0..bdc0954 100644 --- a/lib/docx/body-reader.js +++ b/lib/docx/body-reader.js @@ -174,10 +174,14 @@ function BodyReader(options) { "w:commentReference": readCommentReference, "w:br": function(element) { var breakType = element.attributes["w:type"]; - if (breakType) { - return emptyResultWithMessages([warning("Unsupported break type: " + breakType)]); - } else { + if (breakType == null || breakType === "textWrapping") { return elementResult(documents.lineBreak); + } else if (breakType === "page") { + return elementResult(documents.pageBreak); + } else if (breakType === "column") { + return elementResult(documents.columnBreak); + } else { + return emptyResultWithMessages([warning("Unsupported break type: " + breakType)]); } }, "w:bookmarkStart": function(element){ diff --git a/test/docx/body-reader.tests.js b/test/docx/body-reader.tests.js index bc9257f..57604ac 100644 --- a/test/docx/body-reader.tests.js +++ b/test/docx/body-reader.tests.js @@ -700,6 +700,24 @@ test("w:br without explicit type is read as line break", function() { assert.deepEqual(result, documents.lineBreak); }); +test("w:br with textWrapping type is read as line break", function() { + var breakXml = new XmlElement("w:br", {"w:type": "textWrapping"}, []); + var result = readXmlElementValue(breakXml); + assert.deepEqual(result, documents.lineBreak); +}); + +test("w:br with page type is read as line break", function() { + var breakXml = new XmlElement("w:br", {"w:type": "page"}, []); + var result = readXmlElementValue(breakXml); + assert.deepEqual(result, documents.pageBreak); +}); + +test("w:br with column type is read as line break", function() { + var breakXml = new XmlElement("w:br", {"w:type": "column"}, []); + var result = readXmlElementValue(breakXml); + assert.deepEqual(result, documents.columnBreak); +}); + test("warning on breaks that aren't recognised", function() { var breakXml = new XmlElement("w:br", {"w:type": "unknownBreakType"}, []); var result = readXmlElement(breakXml); |
