this.mimetype = 'font/opentype';
var subtype = properties.subtype;
- var cff = (subtype === 'Type1C') ?
+ var cff = (subtype == 'Type1C' || properties.type == 'CIDFontType0') ?
new Type2CFF(file, properties) : new CFF(name, file, properties);
// Wrap the CFF data inside an OTF font file
var bytes = this.bytes;
+ var privateDict = {};
var privateInfo = topDict.Private;
- var privOffset = privateInfo[1], privLength = privateInfo[0];
- var privBytes = bytes.subarray(privOffset, privOffset + privLength);
- baseDict = this.parseDict(privBytes);
- var privDict = this.getPrivDict(baseDict, strings);
+ if (privateInfo) {
+ var privOffset = privateInfo[1], privLength = privateInfo[0];
+ var privBytes = bytes.subarray(privOffset, privOffset + privLength);
+ baseDict = this.parseDict(privBytes);
+ privateDict = this.getPrivDict(baseDict, strings);
+ } else {
+ privateDict.defaultWidthX = properties.defaultWidth;
+ }
var charStrings = this.parseIndex(topDict.CharStrings);
var charset = this.parseCharsets(topDict.charset,
// charstrings contains info about glyphs (one element per glyph
// containing mappings for {unicode, width})
var charstrings = this.getCharStrings(charset, charStrings,
- privDict, this.properties);
+ privateDict, this.properties);
// create the mapping between charstring and glyph id
var glyphIds = [];
},
getCharStrings: function cff_charstrings(charsets, charStrings,
- privDict, properties) {
- var defaultWidth = privDict['defaultWidthX'];
- var nominalWidth = privDict['nominalWidthX'];
-
+ privateDict, properties) {
+ var defaultWidth = privateDict['defaultWidthX'];
var charstrings = [];
var differences = properties.differences;
var index = 0;