Show More
Commit Description:
force log out when password change
Commit Description:
force log out when password change
References:
File last commit:
Show/Diff file:
Action:
node_modules/pdfmake/src/fontProvider.js
| 68 lines
| 1.7 KiB
| application/javascript
| JavascriptLexer
|
r789 | 'use strict'; | |||
var isArray = require('./helpers').isArray; | ||||
function typeName(bold, italics) { | ||||
var type = 'normal'; | ||||
if (bold && italics) { | ||||
type = 'bolditalics'; | ||||
} else if (bold) { | ||||
type = 'bold'; | ||||
} else if (italics) { | ||||
type = 'italics'; | ||||
} | ||||
return type; | ||||
} | ||||
function FontProvider(fontDescriptors, pdfKitDoc) { | ||||
this.fonts = {}; | ||||
this.pdfKitDoc = pdfKitDoc; | ||||
this.fontCache = {}; | ||||
for (var font in fontDescriptors) { | ||||
if (fontDescriptors.hasOwnProperty(font)) { | ||||
var fontDef = fontDescriptors[font]; | ||||
this.fonts[font] = { | ||||
normal: fontDef.normal, | ||||
bold: fontDef.bold, | ||||
italics: fontDef.italics, | ||||
bolditalics: fontDef.bolditalics | ||||
}; | ||||
} | ||||
} | ||||
} | ||||
FontProvider.prototype.getFontType = function (bold, italics) { | ||||
return typeName(bold, italics); | ||||
} | ||||
FontProvider.prototype.getFontFile = function (familyName, bold, italics) { | ||||
var type = this.getFontType(bold, italics); | ||||
if (!this.fonts[familyName] || !this.fonts[familyName][type]) { | ||||
return null; | ||||
} | ||||
return this.fonts[familyName][type]; | ||||
} | ||||
FontProvider.prototype.provideFont = function (familyName, bold, italics) { | ||||
var type = this.getFontType(bold, italics); | ||||
if (this.getFontFile(familyName, bold, italics) === null) { | ||||
throw new Error('Font \'' + familyName + '\' in style \'' + type + '\' is not defined in the font section of the document definition.'); | ||||
} | ||||
this.fontCache[familyName] = this.fontCache[familyName] || {}; | ||||
if (!this.fontCache[familyName][type]) { | ||||
var def = this.fonts[familyName][type]; | ||||
if (!isArray(def)) { | ||||
def = [def]; | ||||
} | ||||
this.fontCache[familyName][type] = this.pdfKitDoc.font.apply(this.pdfKitDoc, def)._font; | ||||
} | ||||
return this.fontCache[familyName][type]; | ||||
}; | ||||
module.exports = FontProvider; | ||||