sfnttool.jar 优化网站自带字体包

一些网站会使用自己专属的字体包,英文的字体包一般很小

但是中文的字体包一般会比较大5兆以上,10兆左右,但是其中的字体我们又不是全都会使用,

针对移动端流量进行优化的方案就是,从完整字体包中抽取使用过的文字,形成简化的字体包

sfnttool.jar下载 官网

下载链接 自用(版本可能滞后,但能用)

 

shell 命令 java -jar sfnttool.jar 文件路径 -s '字体内容' 原始ttf文件路径 裁剪后ttf文件路径

那么如何针对我们的网站进行字体库优化呢,这就用到了上一篇内容写到的爬虫插件了

具体思路是爬虫爬自己的网站,把所有的文字爬出来,形成去重字符串,再通过 sfnttool.jar 简化出字体包

Pupp.js

const puppeteer = require('puppeteer');

puppeteer.launch().then(async browser => {
const page = await browser.newPage();

var fontstr = '';

await page.goto('https://www.baidu.com');

await page.waitForTimeout(1000);

let content = await page.content();

// const hrefs = await page.evaluate(() => Array.from(document.body.querySelectorAll('a[href]'), ({ href }) => href));  //  有子页面的话拿到链接去迭代 自由发挥

browser.close();

var info = Array.from(new Set(content.split('')));  // 拿到 document 的内容并去重
var str = info.join('').replace(/[^\u4e00-\u9fa5]/gi,"");  // 筛选出纯文字 
console.log(str);  // 这些就是我们使用到的文字,建议在最后增加中文标点符号后  以参数方式 代入上面 java 命令 生成压缩后的字体库,一般都在几百KB左右
})

 

posted @   南巷清风--大R  阅读(379)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示