diff options
| author | Chris Price <studiochris@users.noreply.github.com> | 2014-08-17 16:50:20 -0400 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2014-08-18 12:41:47 +0100 |
| commit | 86564e37ae9433d9678e0c00c66e342afd8884b0 (patch) | |
| tree | 80a627e054185299e5be13a687b3907c7244ad93 | |
| parent | 90f0b6d73e27a5490648523648b426bcab9b602f (diff) | |
Add support for reading .docx files from Buffer instances
| -rw-r--r-- | README.md | 4 | ||||
| -rw-r--r-- | lib/unzip.js | 2 | ||||
| -rw-r--r-- | tests/buffer-tests.js | 27 |
3 files changed, 31 insertions, 2 deletions
@@ -260,7 +260,7 @@ Converts the source document to HTML. * `input`: an object describing the source document. While running on node.js, - to read the file found at `path`, pass in `{path: path}`. + to read the file found at `path`, pass in `{path: path}`; to read a node.js `Buffer` object, pass in `{buffer: buffer}`. While running in the browser, to read the file stored in an array buffer, pass in `{arrayBuffer: arrayBuffer}`. @@ -303,7 +303,7 @@ Each paragraph is followed by two newlines. * `input`: an object describing the source document. While running on node.js, - to read the file found at `path`, pass in `{path: path}`. + to read the file found at `path`, pass in `{path: path}`; to read a node.js `Buffer` object, pass in `{buffer: buffer}`. While running in the browser, to read the file stored in an array buffer, pass in `{arrayBuffer: arrayBuffer}`. diff --git a/lib/unzip.js b/lib/unzip.js index 97db80f..51c34a3 100644 --- a/lib/unzip.js +++ b/lib/unzip.js @@ -12,6 +12,8 @@ var readFile = promises.promisify(fs.readFile); function openZip(options) { if (options.path) { return readFile(options.path).then(zipfile.openArrayBuffer); + } else if (options.buffer) { + return zipfile.openArrayBuffer(options.buffer); } else if (options.file) { return options.file; } else { diff --git a/tests/buffer-tests.js b/tests/buffer-tests.js new file mode 100644 index 0000000..3b4a6c1 --- /dev/null +++ b/tests/buffer-tests.js @@ -0,0 +1,27 @@ +var assert = require("assert"); +var test = require("./testing").test; + +var fs = require("fs"); +var path = require("path"); + +var mammoth = require("../lib"); + +describe("buffer-tests", function() { + test('should convert docx as Buffer to one HTML paragraph', function() { + var docxPath = path.join(__dirname, "test-data/single-paragraph.docx"); + var buffer = fs.readFileSync(docxPath); + return mammoth.convertToHtml({buffer: buffer}).then(function(result) { + assert.equal(result.value, "<p>Walking on imported air</p>"); + assert.deepEqual(result.messages, []); + }); + }); + + test('should convert docx as Buffer to plain text', function() { + var docxPath = path.join(__dirname, "test-data/single-paragraph.docx"); + var buffer = fs.readFileSync(docxPath); + return mammoth.extractRawText({buffer: buffer}).then(function(result) { + assert.equal(result.value, "Walking on imported air\n\n"); + assert.deepEqual(result.messages, []); + }); + }); +}); |
