aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-11-28 18:05:43 +0000
committerMichael Williamson <mike@zwobble.org>2016-11-28 18:05:43 +0000
commit481d5860686b6b02b5536d7455b88baf7325ecfd (patch)
tree70b31e54c2e03b4b6c8894a50241b75cc63ff48a
parentcdfeaf4b15e7161a0eae4bcb3df868d709db10ad (diff)
Parse page and column break types
-rw-r--r--lib/docx/body-reader.js10
-rw-r--r--test/docx/body-reader.tests.js18
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);