@@ -77,6 +77,7 @@ <h1>Free Software</h1>
7777
7878< script type ="module ">
7979import * as opentype from "/dist/opentype.mjs" ;
80+ globalThis . opentype = opentype ;
8081
8182const form = document . forms . demo ;
8283form . oninput = renderText ;
@@ -203,11 +204,30 @@ <h1>Free Software</h1>
203204 el . innerHTML = message ;
204205}
205206
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+
206222function onFontLoaded ( font ) {
207223 if ( window . font ) {
208224 window . font . onGlyphUpdated = null
209225 }
210226 window . font = font ;
227+
228+ window . fontArrayBuffer = font . toArrayBuffer ( ) ;
229+ window . font2 = opentype . parse ( window . fontArrayBuffer ) ;
230+
211231 options = Object . assign ( { } , window . font . defaultRenderOptions ) ;
212232 window . fontOptions = options ;
213233
@@ -279,7 +299,7 @@ <h1>Free Software</h1>
279299 error = err ;
280300 }
281301
282- onFontLoaded ( opentype . parse ( isWoff2 ? Module . decompress ( data ) : data , { lowMemory : true } ) ) ;
302+ onFontLoaded ( opentype . parse ( isWoff2 ? Module . decompress ( data ) : data , { lowMemory : false } ) ) ;
283303 if ( ! error ) showErrorMessage ( '' ) ;
284304 } catch ( err ) {
285305 showErrorMessage ( err . toString ( ) ) ;
0 commit comments