aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2013-04-27 22:38:01 +0100
committerMichael Williamson <mike@zwobble.org>2013-04-27 22:38:01 +0100
commit2642cdd90f25528df0d9501200bc95417e60ec82 (patch)
tree616d495bccaa000c550353412d648d6b56279f89 /lib
parentcb18e8aa92108f8576c5d4312e89e6ddbabd88c8 (diff)
Add content-types to image elements
Diffstat (limited to 'lib')
-rw-r--r--lib/document-xml-reader.js12
-rw-r--r--lib/documents.js7
-rw-r--r--lib/docx-reader.js7
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);
});
});