modern-font
v0.3.2
Published
JavaScript Font Codec.
Downloads
841
Maintainers
Readme
Features
Encode, Decode
Get glyph path commands
Format conversion
Minify
TypeScript
📦 Install
npm i modern-font
🦄 Usage
import { Eot, minifyFont, Ttf, Woff } from 'modern-font'
fetch('font.woff')
.then(rep => rep.arrayBuffer())
.then((buffer) => {
let woff, ttf, eot
if (Woff.is(buffer)) {
woff = new Woff(buffer)
ttf = Ttf.from(woff.sfnt)
eot = Eot.from(ttf)
}
else if (Ttf.is(buffer)) {
ttf = new Ttf(buffer)
woff = Woff.from(ttf.sfnt)
eot = Eot.from(ttf)
}
const minifyWoff = minifyFont(woff, 'minify')
document.fonts.add(woff.toFontFace('woff'))
document.fonts.add(ttf.toFontFace('ttf'))
document.fonts.add(eot.toFontFace('eot'))
document.fonts.add(minifyWoff.toFontFace('minifyWoff'))
console.log(woff, ttf, eot, minifyWoff)
})
🚀 WOFF to TTF
import { Ttf, Woff } from 'modern-font'
fetch('font.woff')
.then(rep => rep.arrayBuffer())
.then((buffer) => {
const ttf = Ttf.from(new Woff(buffer).sfnt)
// ttf file
window.open(URL.createObjectURL(ttf.toBlob()))
})
🚀 TTF to WOFF
import { Ttf, Woff } from 'modern-font'
fetch('font.ttf')
.then(rep => rep.arrayBuffer())
.then((buffer) => {
const woff = Woff.from(new Ttf(buffer).sfnt)
// woff file
window.open(URL.createObjectURL(woff.toBlob()))
})
🚀 TTF to EOT
import { Eot, Ttf } from 'modern-font'
fetch('font.ttf')
.then(rep => rep.arrayBuffer())
.then((buffer) => {
const eot = Eot.from(new Ttf(buffer))
// eot file
window.open(URL.createObjectURL(eot.toBlob()))
})
🚀 Minify
import { minifyFont } from 'modern-font'
fetch('font.woff')
.then(rep => rep.arrayBuffer())
.then((rawBuffer) => {
const buffer = minifyFont(rawBuffer, 'A set of text cropped from a font file')
console.log(
`raw size: ${rawBuffer.byteLength / 1024 / 1024}`,
`minimized size: ${buffer.byteLength / 1024 / 1024}`,
)
// minimized woff file
const woff = new Blob([buffer], { type: 'font/woff' })
window.open(URL.createObjectURL(woff))
})