1
-
1
+ import { inflate } from 'pako' ;
2
+ // Mocking the pako module to just have inflate for a smaller package size
3
+ const pako = { inflate } ;
2
4
3
5
var Typr = { } ;
4
6
@@ -82,7 +84,7 @@ Typr["parse"] = function (buff) {
82
84
83
85
otf . set ( tab , toff ) ; toff += oLe ;
84
86
}
85
- //console.log(otf);
87
+ //console.log(otf);
86
88
return otf ;
87
89
}
88
90
@@ -143,7 +145,7 @@ Typr["splitBy"] = function(data,tag) {
143
145
data = new Uint8Array(data); console.log(data.slice(0,64));
144
146
var bin = Typr["B"];
145
147
var ttcf = bin.readASCII(data, 0, 4); if(ttcf!="ttcf") return {};
146
-
148
+
147
149
var offset = 8;
148
150
var numF = bin.readUint (data, offset); offset+=4;
149
151
var colls = [], used={};
@@ -156,12 +158,12 @@ Typr["splitBy"] = function(data,tag) {
156
158
for(var toff in used) {
157
159
var offs = used[toff];
158
160
var hlen = 12+4*offs.length;
159
- var out = new Uint8Array(hlen);
161
+ var out = new Uint8Array(hlen);
160
162
for(var i=0; i<8; i++) out[i]=data[i];
161
163
bin.writeUint(out,8,offs.length);
162
-
164
+
163
165
for(var i=0; i<offs.length; i++) hlen += 12+offs[i][1]*16;
164
-
166
+
165
167
var hdrs = [out], tabs = [], hoff=out.length, toff=hlen, noffs={};
166
168
for(var i=0; i<offs.length; i++) {
167
169
bin.writeUint(out, 12+i*4, hoff); hoff+=12+offs[i][1]*16;
@@ -176,7 +178,7 @@ Typr["splitFonts"] = function(data) {
176
178
data = new Uint8Array(data);
177
179
var bin = Typr["B"];
178
180
var ttcf = bin.readASCII(data, 0, 4); if(ttcf!="ttcf") return {};
179
-
181
+
180
182
var offset = 8;
181
183
var numF = bin.readUint (data, offset); offset+=4;
182
184
var fnts = [];
@@ -191,26 +193,26 @@ Typr["splitFonts"] = function(data) {
191
193
Typr["_cutFont"] = function(data,foff,hdrs,tabs,toff, noffs) {
192
194
var bin = Typr["B"];
193
195
var numTables = bin.readUshort(data, foff+4);
194
-
196
+
195
197
var out = new Uint8Array(12+numTables*16); hdrs.push(out);
196
198
for(var i=0; i<12; i++) out[i]=data[foff+i]; //console.log(out);
197
-
199
+
198
200
var off = 12;
199
201
for(var i=0; i<numTables; i++)
200
202
{
201
- var tag = bin.readASCII(data, foff+off, 4);
203
+ var tag = bin.readASCII(data, foff+off, 4);
202
204
var checkSum = bin.readUint (data, foff+off+ 4);
203
- var toffset = bin.readUint (data, foff+off+ 8);
205
+ var toffset = bin.readUint (data, foff+off+ 8);
204
206
var length = bin.readUint (data, foff+off+12);
205
-
207
+
206
208
while((length&3)!=0) length++;
207
-
209
+
208
210
for(var j=0; j<16; j++) out[off+j]=data[foff+off+j];
209
-
211
+
210
212
if(noffs[toffset]!=null) bin.writeUint(out,off+8,noffs[toffset]);
211
213
else {
212
214
noffs[toffset] = toff;
213
- bin.writeUint(out, off+8, toff);
215
+ bin.writeUint(out, off+8, toff);
214
216
tabs.push(new Uint8Array(data.buffer, toffset, length)); toff+=length;
215
217
}
216
218
off+=16;
@@ -396,7 +398,7 @@ Typr["T"].CFF = {
396
398
for ( var i = 0 ; i < sinds . length - 1 ; i ++ ) strings . push ( bin . readASCII ( data , offset + sinds [ i ] , sinds [ i + 1 ] - sinds [ i ] ) ) ;
397
399
offset += sinds [ sinds . length - 1 ] ;
398
400
399
- // Global Subr INDEX (subroutines)
401
+ // Global Subr INDEX (subroutines)
400
402
CFF . readSubrs ( data , offset , topdict ) ;
401
403
402
404
// charstrings
@@ -522,12 +524,12 @@ Typr["T"].CFF = {
522
524
/*readEncoding : function(data, offset, num)
523
525
{
524
526
var bin = Typr["B"];
525
-
527
+
526
528
var array = ['.notdef'];
527
529
var format = data[offset]; offset++;
528
530
//console.log("Encoding");
529
531
//console.log(format);
530
-
532
+
531
533
if(format==0)
532
534
{
533
535
var nCodes = data[offset]; offset++;
@@ -545,9 +547,9 @@ Typr["T"].CFF = {
545
547
for(var i=0; i<=nLeft; i++) { charset.push(first); first++; }
546
548
}
547
549
}
548
-
550
+
549
551
else throw "error: unknown encoding format: " + format;
550
-
552
+
551
553
return array;
552
554
},*/
553
555
@@ -809,7 +811,7 @@ Typr["T"].cmap = {
809
811
var lang = rU ( data , offset ) ; offset += 4 ;
810
812
var nGroups = rU ( data , offset ) * 3 ; offset += 4 ;
811
813
812
- var gps = obj . groups = new Uint32Array ( nGroups ) ; //new Uint32Array(data.slice(offset, offset+nGroups*12).buffer);
814
+ var gps = obj . groups = new Uint32Array ( nGroups ) ; //new Uint32Array(data.slice(offset, offset+nGroups*12).buffer);
813
815
814
816
for ( var i = 0 ; i < nGroups ; i += 3 ) {
815
817
gps [ i ] = rU ( data , offset + ( i << 2 ) ) ;
@@ -1092,7 +1094,7 @@ Typr["T"].kern = {
1092
1094
parseV1 : function ( data , offset , length , font ) {
1093
1095
var bin = Typr [ "B" ] , kern = Typr [ "T" ] . kern ;
1094
1096
1095
- var version = bin . readFixed ( data , offset ) ; // 0x00010000
1097
+ var version = bin . readFixed ( data , offset ) ; // 0x00010000
1096
1098
var nTables = bin . readUint ( data , offset + 4 ) ; offset += 8 ;
1097
1099
1098
1100
var map = { glyph1 : [ ] , rval : [ ] } ;
@@ -1495,12 +1497,12 @@ Typr["T"].cpal = {
1495
1497
return new Uint8Array ( data . buffer , ooff + fst , tot * 4 ) ;
1496
1498
/*
1497
1499
var coff=ooff+fst;
1498
-
1500
+
1499
1501
for(var i=0; i<tot; i++) {
1500
1502
console.log(data[coff],data[coff+1],data[coff+2],data[coff+3]);
1501
1503
coff+=4;
1502
1504
}
1503
-
1505
+
1504
1506
console.log(ets,pts,tot); */
1505
1507
}
1506
1508
else throw vsn ; //console.log("unknown color palette",vsn);
@@ -1768,7 +1770,7 @@ Typr["T"].HVAR = {
1768
1770
1769
1771
off = oo + varO ; // item variation store
1770
1772
1771
- // ItemVariationStore
1773
+ // ItemVariationStore
1772
1774
var ioff = off ;
1773
1775
1774
1776
var fmt = bin . readUshort ( data , off ) ; off += 2 ; if ( fmt != 1 ) throw "e" ;
@@ -1777,7 +1779,7 @@ Typr["T"].HVAR = {
1777
1779
var vcnt = bin . readUshort ( data , off ) ; off += 2 ;
1778
1780
1779
1781
var offs = [ ] ; for ( var i = 0 ; i < vcnt ; i ++ ) offs . push ( bin . readUint ( data , off + i * 4 ) ) ; off += vcnt * 4 ; //if(offs.length!=1) throw "e";
1780
- //console.log(vregO,vcnt,offs);
1782
+ //console.log(vregO,vcnt,offs);
1781
1783
1782
1784
off = ioff + vregO ;
1783
1785
var acnt = bin . readUshort ( data , off ) ; off += 2 ;
@@ -1799,7 +1801,7 @@ Typr["T"].HVAR = {
1799
1801
var i8 = new Int8Array ( data . buffer ) ;
1800
1802
var varStore = [ ] ;
1801
1803
for ( var i = 0 ; i < offs . length ; i ++ ) {
1802
- // ItemVariationData
1804
+ // ItemVariationData
1803
1805
off = oo + varO + offs [ i ] ; var vdata = [ ] ; varStore . push ( vdata ) ;
1804
1806
var icnt = bin . readUshort ( data , off ) ; off += 2 ; // itemCount
1805
1807
var dcnt = bin . readUshort ( data , off ) ; off += 2 ; if ( dcnt & 0x8000 ) throw "e" ;
@@ -1828,7 +1830,7 @@ Typr["T"].HVAR = {
1828
1830
1829
1831
off = oo + advO ; // advance widths
1830
1832
1831
- // DeltaSetIndexMap
1833
+ // DeltaSetIndexMap
1832
1834
1833
1835
var fmt = data [ off ++ ] ; if ( fmt != 0 ) throw "e" ;
1834
1836
var entryFormat = data [ off ++ ] ;
@@ -1970,19 +1972,19 @@ Typr["U"] = function () {
1970
1972
var data=font["_data"], off = cmap.off+tab.off+6, bin=Typr["B"];
1971
1973
var shKey = bin.readUshort(data,off + 2*(code>>>8));
1972
1974
var shInd = off + 256*2 + shKey*8;
1973
-
1975
+
1974
1976
var firstCode = bin.readUshort(data,shInd);
1975
1977
var entryCount= bin.readUshort(data,shInd+2);
1976
1978
var idDelta = bin.readShort (data,shInd+4);
1977
1979
var idRangeOffset = bin.readUshort(data,shInd+6);
1978
-
1980
+
1979
1981
if(firstCode<=code && code<=firstCode+entryCount) {
1980
1982
// not completely correct
1981
1983
gid = bin.readUshort(data, shInd+6+idRangeOffset + (code&255)*2);
1982
1984
}
1983
1985
else gid=0;
1984
1986
//if(code>256) console.log(code,(code>>>8),shKey,firstCode,entryCount,idDelta,idRangeOffset);
1985
-
1987
+
1986
1988
//throw "e";
1987
1989
//console.log(tab, bin.readUshort(data,off));
1988
1990
//throw "e";
@@ -2959,4 +2961,4 @@ Typr["U"] = function () {
2959
2961
} ( ) ;
2960
2962
2961
2963
2962
- export default Typr ;
2964
+ export default Typr ;
0 commit comments