docx4js-fork
Version:
javascript docx parser
159 lines (130 loc) • 12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _document = require("../document");
var _document2 = _interopRequireDefault(_document);
var _part = require("./part");
var _part2 = _interopRequireDefault(_part);
var _color = require("color");
var _color2 = _interopRequireDefault(_color);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var _class = function (_Base) {
_inherits(_class, _Base);
function _class() {
_classCallCheck(this, _class);
var _this = _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).apply(this, arguments));
_this.main = new _part2.default("", _this);
_this.officeDocument = new _this.constructor.OfficeDocument(_this.main.getRelTarget("officeDocument"), _this);
return _this;
}
_createClass(_class, [{
key: "render",
value: function render() {
var _officeDocument;
return (_officeDocument = this.officeDocument).render.apply(_officeDocument, arguments);
}
}, {
key: "parse",
value: function parse() {
var _officeDocument2;
return (_officeDocument2 = this.officeDocument).parse.apply(_officeDocument2, arguments);
}
}, {
key: "dxa2Px",
value: function dxa2Px(a) {
return this.pt2Px(a / 20.0);
}
}, {
key: "emu2Px",
value: function emu2Px(a) {
return this.pt2Px(a / 12700);
}
}, {
key: "pt2Px",
value: function pt2Px(pt) {
return pt * 96 / 72;
}
}, {
key: "cm2Px",
value: function cm2Px(cm) {
return this.pt2Px(parseInt(cm) * 28.3464567);
}
}, {
key: "asColor",
value: function asColor(v, transform) {
if (!v || v.length == 0 || v == 'auto') return '#000000';
v = v.split(' ')[0];
var rgb = v.charAt(0) == '#' ? v : RGB.test(v) ? '#' + v : v;
if (transform) {
var lumMod = transform.lumMod,
lumOff = transform.lumOff,
tint = transform.tint,
shade = transform.shade;
if (lumMod || lumOff || tint) {
var color = (0, _color2.default)(rgb);
if (tint != undefined) {
color = color.lighten(1 - tint);
}
if (lumMod != undefined) {
color = color.lighten(lumMod);
}
if (lumOff != undefined) {
color = color.darken(lumOff);
}
if (shade != undefined) {
color = color.red(color.red() * (1 + shade)).green(color.green() * (1 + shade)).blue(color.blue() * (1 + shade));
}
return ("" + color.hex()).replace(/^0x/, "#");
}
}
return rgb;
}
}, {
key: "toPx",
value: function toPx(length) {
var value = parseFloat(length),
units = String(length).match(RE_LENGTH_UNIT)[1];
switch (units) {
case 'cm':
return this.cm2Px(value);
case 'mm':
return this.cm2Px(value / 10);
case 'in':
return this.pt2Px(value * 72);
case 'pt':
return this.pt2Px(value);
case 'ft':
return this.pt2Px(value * 864);
default:
return value;
}
}
}, {
key: "vender",
get: function get() {
"Microsoft";
}
}, {
key: "product",
get: function get() {
return 'Office 2010';
}
}, {
key: "contentTypes",
get: function get() {
return this.getObjectPart("[Content_Types].xml")("Types");
}
}]);
return _class;
}(_document2.default);
_class.OfficeDocument = _part2.default;
exports.default = _class;
var RGB = /([a-fA-F0-9]{2}?){3}?/;
var RE_LENGTH_UNIT = /^([a-zA-Z]+)$/;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVueG1sL2RvY3VtZW50LmpzIl0sIm5hbWVzIjpbImFyZ3VtZW50cyIsIm1haW4iLCJvZmZpY2VEb2N1bWVudCIsImNvbnN0cnVjdG9yIiwiT2ZmaWNlRG9jdW1lbnQiLCJnZXRSZWxUYXJnZXQiLCJyZW5kZXIiLCJwYXJzZSIsImEiLCJwdDJQeCIsInB0IiwiY20iLCJwYXJzZUludCIsInYiLCJ0cmFuc2Zvcm0iLCJsZW5ndGgiLCJzcGxpdCIsInJnYiIsImNoYXJBdCIsIlJHQiIsInRlc3QiLCJsdW1Nb2QiLCJsdW1PZmYiLCJ0aW50Iiwic2hhZGUiLCJjb2xvciIsInVuZGVmaW5lZCIsImxpZ2h0ZW4iLCJkYXJrZW4iLCJyZWQiLCJncmVlbiIsImJsdWUiLCJoZXgiLCJyZXBsYWNlIiwidmFsdWUiLCJwYXJzZUZsb2F0IiwidW5pdHMiLCJTdHJpbmciLCJtYXRjaCIsIlJFX0xFTkdUSF9VTklUIiwiY20yUHgiLCJnZXRPYmplY3RQYXJ0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7O0FBR0MsbUJBQWE7QUFBQTs7QUFBQSwrR0FDSEEsU0FERzs7QUFFWixRQUFLQyxJQUFMLEdBQVUsbUJBQVMsRUFBVCxRQUFWO0FBQ0EsUUFBS0MsY0FBTCxHQUFvQixJQUFJLE1BQUtDLFdBQUwsQ0FBaUJDLGNBQXJCLENBQW9DLE1BQUtILElBQUwsQ0FBVUksWUFBVixDQUF1QixnQkFBdkIsQ0FBcEMsUUFBcEI7QUFIWTtBQUlaOzs7OzJCQVNPO0FBQUE7O0FBQ1AsVUFBTyx3QkFBS0gsY0FBTCxFQUFvQkksTUFBcEIsd0JBQThCTixTQUE5QixDQUFQO0FBQ0E7OzswQkFFTTtBQUFBOztBQUNOLFVBQU8seUJBQUtFLGNBQUwsRUFBb0JLLEtBQXBCLHlCQUE2QlAsU0FBN0IsQ0FBUDtBQUNBOzs7eUJBRU1RLEMsRUFBRTtBQUNSLFVBQU8sS0FBS0MsS0FBTCxDQUFXRCxJQUFFLElBQWIsQ0FB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QW1CLHFCQUFuQixFQUEwQyxPQUExQyxDQUFQO0FBQ0E7Ozs7OztPQTRFTXJDLGM7OztBQUVSLElBQU1lLE1BQUksdUJBQVY7QUFDQSxJQUFNb0IsaUJBQWUsZUFBckIiLCJmaWxlIjoiZG9jdW1lbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZSBmcm9tIFwiLi4vZG9jdW1lbnRcIlxyXG5pbXBvcnQgUGFydCBmcm9tICcuL3BhcnQnXHJcbmltcG9ydCBDb2xvciBmcm9tIFwiY29sb3JcIlxyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgZXh0ZW5kcyBCYXNle1xyXG5cdGNvbnN0cnVjdG9yKCl7XHJcblx0XHRzdXBlciguLi5hcmd1bWVudHMpXHJcblx0XHR0aGlzLm1haW49bmV3IFBhcnQoXCJcIix0aGlzKVxyXG5cdFx0dGhpcy5vZmZpY2VEb2N1bWVudD1uZXcgdGhpcy5jb25zdHJ1Y3Rvci5PZmZpY2VEb2N1bWVudCh0aGlzLm1haW4uZ2V0UmVsVGFyZ2V0KFwib2ZmaWNlRG9jdW1lbnRcIiksIHRoaXMpXHJcblx0fVxyXG5cdGdldCB2ZW5kZXIoKXtcIk1pY3Jvc29mdFwifVxyXG5cclxuXHRnZXQgcHJvZHVjdCgpe3JldHVybiAnT2ZmaWNlIDIwMTAnfVxyXG5cclxuXHRnZXQgY29udGVudFR5cGVzKCl7XHJcblx0XHRyZXR1cm4gdGhpcy5nZXRPYmplY3RQYXJ0KFwiW0NvbnRlbnRfVHlwZXNdLnhtbFwiKShcIlR5cGVzXCIpXHJcblx0fVxyXG5cclxuXHRyZW5kZXIoKXtcclxuXHRcdHJldHVybiB0aGlzLm9mZmljZURvY3VtZW50LnJlbmRlciguLi5hcmd1bWVudHMpXHJcblx0fVxyXG5cclxuXHRwYXJzZSgpe1xyXG5cdFx0cmV0dXJuIHRoaXMub2ZmaWNlRG9jdW1lbnQucGFyc2UoLi4uYXJndW1lbnRzKVxyXG5cdH1cclxuXHJcblx0ZHhhMlB4KGEpe1xyXG5cdFx0cmV0dXJuIHRoaXMucHQyUHgoYS8yMC4wKVxyXG5cdH1cclxuXHJcblx0ZW11MlB4KGEpe1xyXG5cdFx0cmV0dXJuIHRoaXMucHQyUHgoYS8xMjcwMClcclxuXHR9XHJcblx0XHJcblxyXG5cdHB0MlB4KHB0KXtcclxuXHRcdHJldHVybiBwdCo5Ni83MlxyXG5cdH1cclxuXHJcblx0Y20yUHgoY20pe1xyXG5cdFx0cmV0dXJuIHRoaXMucHQyUHgocGFyc2VJbnQoY20pKjI4LjM0NjQ1NjcpXHJcblx0fVxyXG5cclxuXHRhc0NvbG9yKHYsIHRyYW5zZm9ybSl7XHJcblx0XHRpZighdiB8fCB2Lmxlbmd0aD09MCB8fCB2PT0nYXV0bycpXHJcblx0XHRcdHJldHVybiAnIzAwMDAwMCdcclxuXHRcdHY9di5zcGxpdCgnICcpWzBdXHJcblx0XHRjb25zdCByZ2I9di5jaGFyQXQoMCk9PScjJyA/IHYgOiAoUkdCLnRlc3QodikgPyAnIycrdiA6IHYpXHJcblx0XHRpZih0cmFuc2Zvcm0pe1xyXG5cdFx0XHRjb25zdCB7bHVtTW9kLGx1bU9mZix0aW50LHNoYWRlfT10cmFuc2Zvcm1cclxuXHRcdFx0aWYobHVtTW9kfHxsdW1PZmZ8fHRpbnQpe1xyXG5cdFx0ICAgICAgICBsZXQgY29sb3I9Q29sb3IocmdiKVxyXG5cclxuXHRcdCAgICAgICAgaWYodGludCE9dW5kZWZpbmVkKXtcclxuXHRcdCAgICAgICAgICAgIGNvbG9yPWNvbG9yLmxpZ2h0ZW4oMS10aW50KVxyXG5cdFx0ICAgICAgICB9XHJcblxyXG5cdFx0ICAgICAgICBpZihsdW1Nb2QhPXVuZGVmaW5lZCl7XHJcblx0XHQgICAgICAgICAgICBjb2xvcj1jb2xvci5saWdodGVuKGx1bU1vZClcclxuXHRcdCAgICAgICAgfVxyXG5cclxuXHRcdCAgICAgICAgaWYobHVtT2ZmIT11bmRlZmluZWQpe1xyXG5cdFx0ICAgICAgICAgICAgY29sb3I9Y29sb3IuZGFya2VuKGx1bU9mZilcclxuXHRcdCAgICAgICAgfVxyXG5cclxuXHRcdFx0XHRpZihzaGFkZSE9dW5kZWZpbmVkKXtcclxuXHRcdFx0XHRcdGNvbG9yPWNvbG9yXHJcblx0XHRcdFx0XHRcdC5yZWQoY29sb3IucmVkKCkqKDErc2hhZGUpKVxyXG5cdFx0XHRcdFx0XHQuZ3JlZW4oY29sb3IuZ3JlZW4oKSooMStzaGFkZSkpXHJcblx0XHRcdFx0XHRcdC5ibHVlKGNvbG9yLmJsdWUoKSooMStzaGFkZSkpXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdCAgICAgICAgcmV0dXJuIGAke2NvbG9yLmhleCgpfWAucmVwbGFjZSgvXjB4LyxcIiNcIilcclxuXHRcdCAgICB9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gcmdiXHJcblx0fVxyXG5cdFxyXG5cdHRvUHgobGVuZ3RoKSB7XHJcblx0XHR2YXIgdmFsdWUgPSBwYXJzZUZsb2F0KGxlbmd0aCksXHJcblx0XHRcdHVuaXRzID0gU3RyaW5nKGxlbmd0aCkubWF0Y2goUkVfTEVOR1RIX1VOSVQpWzFdO1xyXG5cclxuXHRcdHN3aXRjaCAodW5pdHMpIHtcclxuXHRcdFx0Y2FzZSAnY20nIDogcmV0dXJuIHRoaXMuY20yUHgodmFsdWUpO1xyXG5cdFx0XHRjYXNlICdtbScgOiByZXR1cm4gdGhpcy5jbTJQeCh2YWx1ZSAvIDEwKTtcclxuXHRcdFx0Y2FzZSAnaW4nIDogcmV0dXJuIHRoaXMucHQyUHgodmFsdWUgKiA3Mik7XHJcblx0XHRcdGNhc2UgJ3B0JyA6IHJldHVybiB0aGlzLnB0MlB4KHZhbHVlKTtcclxuXHRcdFx0Y2FzZSAnZnQnIDogcmV0dXJuIHRoaXMucHQyUHgodmFsdWUqODY0KVxyXG5cdFx0XHRkZWZhdWx0ICAgOiByZXR1cm4gdmFsdWU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgT2ZmaWNlRG9jdW1lbnQ9UGFydFxyXG59XHJcbmNvbnN0IFJHQj0vKFthLWZBLUYwLTldezJ9Pyl7M30/LztcclxuY29uc3QgUkVfTEVOR1RIX1VOSVQ9L14oW2EtekEtWl0rKSQvXHJcbiJdfQ==