@@ -4758,6 +4758,23 @@ var Type1Parser = function type1Parser() {
4758
4758
return parseFloat (str .substr (start , count ) || 0 );
4759
4759
}
4760
4760
4761
+ function readBoolean (str , index ) {
4762
+ while (str [index ] == ' ' )
4763
+ index ++;
4764
+
4765
+ var start = index ;
4766
+
4767
+ var count = 0 ;
4768
+ var length = str .length ;
4769
+ while (index < length && str [index ++] != ' ' ) {
4770
+ count ++;
4771
+ }
4772
+
4773
+ // Use 1 and 0 since that's what type2 charstrings use.
4774
+ return str .substr (start , count ) === 'true' ? 1 : 0 ;
4775
+ }
4776
+
4777
+
4761
4778
function isSeparator (c ) {
4762
4779
return c == ' ' || c == '\n' || c == '\x0d' ;
4763
4780
}
@@ -4874,7 +4891,7 @@ var Type1Parser = function type1Parser() {
4874
4891
case '/StdHW' :
4875
4892
case '/StdVW' :
4876
4893
program .properties .privateData [token .substring (1 )] =
4877
- readNumberArray (eexecStr , i + 2 )[0 ];
4894
+ readNumberArray (eexecStr , i + 1 )[0 ];
4878
4895
break ;
4879
4896
case '/BlueShift' :
4880
4897
case '/lenIV' :
@@ -4885,6 +4902,10 @@ var Type1Parser = function type1Parser() {
4885
4902
program .properties .privateData [token .substring (1 )] =
4886
4903
readNumber (eexecStr , i + 1 );
4887
4904
break ;
4905
+ case '/ForceBold' :
4906
+ program .properties .privateData [token .substring (1 )] =
4907
+ readBoolean (eexecStr , i + 1 );
4908
+ break ;
4888
4909
}
4889
4910
} else if (c == '/' ) {
4890
4911
token = glyph = '';
@@ -5242,7 +5263,6 @@ Type1Font.prototype = {
5242
5263
var privateDict = new CFFPrivateDict ();
5243
5264
privateDict .setByName ('Subrs' , null ); // placeholder
5244
5265
var fields = [
5245
- // TODO: missing StdHW, StdVW, ForceBold
5246
5266
'BlueValues' ,
5247
5267
'OtherBlues' ,
5248
5268
'FamilyBlues' ,
@@ -5253,7 +5273,10 @@ Type1Font.prototype = {
5253
5273
'BlueFuzz' ,
5254
5274
'BlueScale' ,
5255
5275
'LanguageGroup' ,
5256
- 'ExpansionFactor'
5276
+ 'ExpansionFactor' ,
5277
+ 'ForceBold' ,
5278
+ 'StdHW' ,
5279
+ 'StdVW'
5257
5280
];
5258
5281
for (var i = 0 , ii = fields .length ; i < ii ; i ++) {
5259
5282
var field = fields [i ];
0 commit comments