diff options
| author | Michael Williamson <mike@zwobble.org> | 2013-04-27 22:38:01 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2013-04-27 22:38:01 +0100 |
| commit | 2642cdd90f25528df0d9501200bc95417e60ec82 (patch) | |
| tree | 616d495bccaa000c550353412d648d6b56279f89 /lib | |
| parent | cb18e8aa92108f8576c5d4312e89e6ddbabd88c8 (diff) | |
Add content-types to image elements
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/document-xml-reader.js | 12 | ||||
| -rw-r--r-- | lib/documents.js | 7 | ||||
| -rw-r--r-- | lib/docx-reader.js | 7 |
3 files changed, 18 insertions, 8 deletions
diff --git a/lib/document-xml-reader.js b/lib/document-xml-reader.js index 55675e0..ec9682e 100644 --- a/lib/document-xml-reader.js +++ b/lib/document-xml-reader.js @@ -9,7 +9,7 @@ var Result = require("./results").Result; var warning = require("./results").warning; -function DocumentXmlReader(relationships, docxFile) { +function DocumentXmlReader(relationships, contentTypes, docxFile) { function convertXmlToDocument(documentXml) { var body = documentXml.root.first("w:body"); @@ -127,11 +127,15 @@ function DocumentXmlReader(relationships, docxFile) { var results = blips.map(function(blip) { var relationshipId = blip.attributes["r:embed"]; - var imagePath = relationships[relationshipId].target; - var readImage = docxFile.read.bind(docxFile, path.join("word", imagePath)); + var imagePath = path.join("word", relationships[relationshipId].target); + var readImage = docxFile.read.bind(docxFile, imagePath); var altText = element.first("wp:docPr").attributes.descr; - var image = documents.Image(readImage, altText) + var image = documents.Image({ + readImage: readImage, + altText: altText, + contentType: contentTypes.findContentType(imagePath) + }); return new Result(image); }); diff --git a/lib/documents.js b/lib/documents.js index 986cd9c..63d5664 100644 --- a/lib/documents.js +++ b/lib/documents.js @@ -50,11 +50,12 @@ function ElementWithChildren(type) { }; } -function Image(read, altText) { +function Image(options) { return { type: "image", - read: read, - altText: altText + read: options.readImage, + altText: options.altText, + contentType: options.contentType }; } diff --git a/lib/docx-reader.js b/lib/docx-reader.js index ff464d6..02841a5 100644 --- a/lib/docx-reader.js +++ b/lib/docx-reader.js @@ -29,7 +29,12 @@ function read(options) { readXmlFile(docxFile, "word/document.xml") ]).spread(function(relationshipsXml, documentXml) { var relationships = relationshipsXml ? readRelationships(relationshipsXml) : {}; - var reader = new DocumentXmlReader(relationships, docxFile); + var contentTypes = { + findContentType: function(path) { + return "image/png"; + } + }; + var reader = new DocumentXmlReader(relationships, contentTypes, docxFile); return reader.convertXmlToDocument(documentXml); }); }); |
