一、加载本地字体包
1.将本地字体.tff文件转换为base64格式
字体转换网站:https://www.giftofspeed.com/base64-encoder
选择.tff格式文件后,白色方框里的便是转换base64后的
2.创建个css文件,将base64格式的内容复制到代码文件中
这里的字体名字可以自定义,只需在使用的时候保持一致即可
@font-face {
font-family:'字体名字';
src: url(data:application/font-ttf;charset=utf-8;base64,把上面转化base64格式复制到此位置) format('truetype');
}
3.将创建的css文件引入到你要使用改字体的页面中
@import url('./fontCss/文件地址');
最后只需要将你想改的字体的font-famliy设置成上面css文件里写的字体名字就可以了!
二、解决字体包文件过大导致加载报错问题
上面是字体包文件不大的时候的理想情况,当字体包文件太大,比如我这思源黑体达到了7M,甚至十几M
此时如果按照上面的正常加载,便会报错RangeError: Maximum call stack size exceeded
1.压缩字体文件
(最简单的办法是呼叫后端朋友帮忙...)
前置条件:python环境
1.通过python环境,安装fonttools插件
pip install fonttools
2.下载字体编码列表文件
下载地址:字体编码(打开直接网页打开,需要另存为sc_unicode.txt
文件)
3.执行压缩命令(注意字体文件和字体列表编码文件要放在同一个目录下面)
pyftsubset qijifallback.ttf --unicodes-file=sc_unicode.txt
// `qijifallback.ttf`(要压缩的字体文件)
// `sc_unicode.txt`(字体编码列表文件)
压缩命令执行完毕后,会在当前目录出现压缩过的字体库qijifallback.subset.ttf
4.
使用在线压缩工具 cloudconvert官网 ,将ttf文件转换成woff2文件(进一步压缩大小)
我最后压缩出来的字体文件是从8M变成了1M多(找后端朋友好使!)
然后就可以按照上面最开始的办法转换base64加载使用了!