@@ -77,6 +77,7 @@ <h1>Free Software</h1>
77
77
78
78
< script type ="module ">
79
79
import * as opentype from "/dist/opentype.mjs" ;
80
+ globalThis . opentype = opentype ;
80
81
81
82
const form = document . forms . demo ;
82
83
form . oninput = renderText ;
@@ -203,11 +204,30 @@ <h1>Free Software</h1>
203
204
el . innerHTML = message ;
204
205
}
205
206
207
+ globalThis . downloadFont = async ( font ) => {
208
+ const fontArrayBuffer = font . toArrayBuffer ( ) ;
209
+ const blob = new Blob ( [ fontArrayBuffer ] , { type : 'font/otf' } ) ;
210
+ const link = document . createElement ( 'a' ) ;
211
+ link . href = URL . createObjectURL ( blob ) ;
212
+ link . download = 'font.otf' ;
213
+ document . body . appendChild ( link ) ;
214
+ link . click ( ) ;
215
+ document . body . removeChild ( link ) ;
216
+ } ;
217
+
218
+ globalThis . calcKern = ( font , letter1 , letter2 ) => ( font . getKerningValue ( font . charToGlyph ( letter1 ) , font . charToGlyph ( letter2 ) ) ) ;
219
+
220
+
221
+
206
222
function onFontLoaded ( font ) {
207
223
if ( window . font ) {
208
224
window . font . onGlyphUpdated = null
209
225
}
210
226
window . font = font ;
227
+
228
+ window . fontArrayBuffer = font . toArrayBuffer ( ) ;
229
+ window . font2 = opentype . parse ( window . fontArrayBuffer ) ;
230
+
211
231
options = Object . assign ( { } , window . font . defaultRenderOptions ) ;
212
232
window . fontOptions = options ;
213
233
@@ -279,7 +299,7 @@ <h1>Free Software</h1>
279
299
error = err ;
280
300
}
281
301
282
- onFontLoaded ( opentype . parse ( isWoff2 ? Module . decompress ( data ) : data , { lowMemory : true } ) ) ;
302
+ onFontLoaded ( opentype . parse ( isWoff2 ? Module . decompress ( data ) : data , { lowMemory : false } ) ) ;
283
303
if ( ! error ) showErrorMessage ( '' ) ;
284
304
} catch ( err ) {
285
305
showErrorMessage ( err . toString ( ) ) ;
0 commit comments