blob: dc90bc11412670b22c576182b8ea37cce03a16cd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
exports.readStylesXml = readStylesXml;
exports.Styles = Styles;
exports.defaultStyles = new Styles({}, {});
function Styles(paragraphStyles, characterStyles) {
return {
findParagraphStyleById: function(styleId) {
return paragraphStyles[styleId];
},
findCharacterStyleById: function(styleId) {
return characterStyles[styleId];
}
};
}
function readStylesXml(xml) {
var paragraphStyles = {};
var characterStyles = {};
var styles = {
"paragraph": paragraphStyles,
"character": characterStyles
};
xml.root.getElementsByTagName("w:style").forEach(function(styleElement) {
var style = readStyleElement(styleElement);
var styleSet = styles[style.type];
if (styleSet) {
styleSet[style.styleId] = style;
}
});
return new Styles(paragraphStyles, characterStyles);
}
function readStyleElement(styleElement) {
var type = styleElement.attributes["w:type"];
var styleId = styleElement.attributes["w:styleId"];
var name = styleElement.first("w:name").attributes["w:val"];
return {type: type, styleId: styleId, name: name};
}
|