Closed DearTanker closed 7 months ago
您好: 關於您的需求,可以參考 allanguys/font-spider-plus (字蛛+) 這個工具,它可以根據網頁中所用文字抽取所用字體。
步驟如下:
您必須安裝 font-spider-plus 的 npm 套件 (根據您所用的套件管理工具,擇一執行即可)
# npm
npm i font-spider-plus -g
# pnpm
pnpm add -g font-spider-plus
# yarn
yarn global add font-spider-plus
下載我已經寫好用來產生字體的 html 檔 (不放心的話可以先用防毒軟體掃過)
內容所用的 3500 常用漢字取自 elephantnose/characters/3500常用汉字.txt
壓縮檔:fsp.zip
也可以依您習慣的方式命名,不過就要修改 html 裡面的參照了
在 fsp 資料夾內執行下列指令
它執行需要一兩分鐘,雖然看起來好像當掉一樣,但請給它一點時間,執行完畢後會顯示完成訊息
fsp local *.html
執行完畢後,在 fsp 資料夾內就會出現各種格式的字體檔,若要獲得最佳載入體驗,可使用 WOFF2 格式
可以看到抽取並壓縮後只剩下不到 1MB,效果相當良好
就連原本的 TTF 檔抽取後也只剩下不到 2MB
原本的 TTF 原檔會移到 .font-spider 資料夾底下
@cwchien 非常感谢,这个可以试试。
@cwchien 你这个 html 文件中仅有常用的简体汉字,没有英文字母及常用符号,是不是需要额外添加英文字母及符号到 html 文件中才可以在输出的裁剪字体中保留英文字母及符号?
@DearTanker 經您提醒,我用 Glyph Inspector 才發現輸出的檔案沒有西文及符號,看來 html 要把所有需要的字符列出才行
我再調整一下
找了好多年了没有找到一个适合全平台的严格等宽中英文混合字体。 再网站上用了一段时间的完整 mono 字体,除了每次网页要加载十几兆的完整字体比较慢以外,显示效果完美。 特别是极其适合用在 code 和 pre 标签内。
考虑到要完整支持所有简体字确实字体要那么大,所以如果能大幅缩减不常用汉字,只保留 3500 常用汉字,是不是可以大幅缩减字体文件的大小,使之更加适合 Web 环境。