Merge pull request #2500 from brendandahl/private-entries
Add support for more Type1 private dictionary entries.
This commit is contained in:
commit
318e7f6949
29
src/fonts.js
29
src/fonts.js
@ -4758,6 +4758,23 @@ var Type1Parser = function type1Parser() {
|
|||||||
return parseFloat(str.substr(start, count) || 0);
|
return parseFloat(str.substr(start, count) || 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function readBoolean(str, index) {
|
||||||
|
while (str[index] == ' ')
|
||||||
|
index++;
|
||||||
|
|
||||||
|
var start = index;
|
||||||
|
|
||||||
|
var count = 0;
|
||||||
|
var length = str.length;
|
||||||
|
while (index < length && str[index++] != ' ') {
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use 1 and 0 since that's what type2 charstrings use.
|
||||||
|
return str.substr(start, count) === 'true' ? 1 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function isSeparator(c) {
|
function isSeparator(c) {
|
||||||
return c == ' ' || c == '\n' || c == '\x0d';
|
return c == ' ' || c == '\n' || c == '\x0d';
|
||||||
}
|
}
|
||||||
@ -4874,7 +4891,7 @@ var Type1Parser = function type1Parser() {
|
|||||||
case '/StdHW':
|
case '/StdHW':
|
||||||
case '/StdVW':
|
case '/StdVW':
|
||||||
program.properties.privateData[token.substring(1)] =
|
program.properties.privateData[token.substring(1)] =
|
||||||
readNumberArray(eexecStr, i + 2)[0];
|
readNumberArray(eexecStr, i + 1)[0];
|
||||||
break;
|
break;
|
||||||
case '/BlueShift':
|
case '/BlueShift':
|
||||||
case '/lenIV':
|
case '/lenIV':
|
||||||
@ -4885,6 +4902,10 @@ var Type1Parser = function type1Parser() {
|
|||||||
program.properties.privateData[token.substring(1)] =
|
program.properties.privateData[token.substring(1)] =
|
||||||
readNumber(eexecStr, i + 1);
|
readNumber(eexecStr, i + 1);
|
||||||
break;
|
break;
|
||||||
|
case '/ForceBold':
|
||||||
|
program.properties.privateData[token.substring(1)] =
|
||||||
|
readBoolean(eexecStr, i + 1);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} else if (c == '/') {
|
} else if (c == '/') {
|
||||||
token = glyph = '';
|
token = glyph = '';
|
||||||
@ -5242,7 +5263,6 @@ Type1Font.prototype = {
|
|||||||
var privateDict = new CFFPrivateDict();
|
var privateDict = new CFFPrivateDict();
|
||||||
privateDict.setByName('Subrs', null); // placeholder
|
privateDict.setByName('Subrs', null); // placeholder
|
||||||
var fields = [
|
var fields = [
|
||||||
// TODO: missing StdHW, StdVW, ForceBold
|
|
||||||
'BlueValues',
|
'BlueValues',
|
||||||
'OtherBlues',
|
'OtherBlues',
|
||||||
'FamilyBlues',
|
'FamilyBlues',
|
||||||
@ -5253,7 +5273,10 @@ Type1Font.prototype = {
|
|||||||
'BlueFuzz',
|
'BlueFuzz',
|
||||||
'BlueScale',
|
'BlueScale',
|
||||||
'LanguageGroup',
|
'LanguageGroup',
|
||||||
'ExpansionFactor'
|
'ExpansionFactor',
|
||||||
|
'ForceBold',
|
||||||
|
'StdHW',
|
||||||
|
'StdVW'
|
||||||
];
|
];
|
||||||
for (var i = 0, ii = fields.length; i < ii; i++) {
|
for (var i = 0, ii = fields.length; i < ii; i++) {
|
||||||
var field = fields[i];
|
var field = fields[i];
|
||||||
|
Loading…
Reference in New Issue
Block a user