You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
typesetting/pitfall/pdfkit/node_modules/fontkit/base.js

63 lines
1.3 KiB
JavaScript

'use strict';
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var r = _interopDefault(require('restructure'));
var fs = require('fs');
var fontkit = {};
fontkit.logErrors = false;
var formats = [];
fontkit.registerFormat = function (format) {
formats.push(format);
};
fontkit.openSync = function (filename, postscriptName) {
var buffer = fs.readFileSync(filename);
return fontkit.create(buffer, postscriptName);
};
fontkit.open = function (filename, postscriptName, callback) {
if (typeof postscriptName === 'function') {
callback = postscriptName;
postscriptName = null;
}
fs.readFile(filename, function (err, buffer) {
if (err) {
return callback(err);
}
try {
var font = fontkit.create(buffer, postscriptName);
} catch (e) {
return callback(e);
}
return callback(null, font);
});
return;
};
fontkit.create = function (buffer, postscriptName) {
for (var i = 0; i < formats.length; i++) {
var format = formats[i];
if (format.probe(buffer)) {
var font = new format(new r.DecodeStream(buffer));
if (postscriptName) {
return font.getFont(postscriptName);
}
return font;
}
}
throw new Error('Unknown font format');
};
module.exports = fontkit;
//# sourceMappingURL=base.js.map