Browse Source

Support div number format for seac operator.

Brendan Dahl 13 years ago
parent
commit
792ef1b14d
  1. 13
      src/fonts.js

13
src/fonts.js

@ -3429,7 +3429,8 @@ var Type1Parser = function type1Parser() {
for (var i = 0; i < numArgs; i++) { for (var i = 0; i < numArgs; i++) {
if (index < 0) { if (index < 0) {
args.unshift({ arg: [0], args.unshift({ arg: [0],
value: 0 }); value: 0,
offset: 0 });
warn('Malformed charstring stack: not enough values on stack.'); warn('Malformed charstring stack: not enough values on stack.');
continue; continue;
} }
@ -3443,11 +3444,13 @@ var Type1Parser = function type1Parser() {
b = 1; b = 1;
} }
args.unshift({ arg: [a, b, 'div'], args.unshift({ arg: [a, b, 'div'],
value: a / b }); value: a / b,
offset: index - 2 });
index -= 3; index -= 3;
} else if (isInt(token)) { } else if (isInt(token)) {
args.unshift({ arg: stack.slice(index, index + 1), args.unshift({ arg: stack.slice(index, index + 1),
value: token }); value: token,
offset: index });
index--; index--;
} else { } else {
warn('Malformed charsting stack: found bad token ' + token + '.'); warn('Malformed charsting stack: found bad token ' + token + '.');
@ -3501,7 +3504,9 @@ var Type1Parser = function type1Parser() {
} else if (escape == 6) { } else if (escape == 6) {
// seac is like type 2's special endchar but it doesn't use the // seac is like type 2's special endchar but it doesn't use the
// first argument asb, so remove it. // first argument asb, so remove it.
charstring.splice(charstring.length - 5, 1); var args = breakUpArgs(charstring, 5);
var arg0 = args[0];
charstring.splice(arg0.offset, arg0.arg.length);
} else if (!kHintingEnabled && (escape == 1 || escape == 2)) { } else if (!kHintingEnabled && (escape == 1 || escape == 2)) {
charstring.push('drop', 'drop', 'drop', 'drop', 'drop', 'drop'); charstring.push('drop', 'drop', 'drop', 'drop', 'drop', 'drop');
continue; continue;

Loading…
Cancel
Save