当前位置: 首页 > news >正文

fontTools工具的使用介绍

前言

  • python工具库fontTools,我是用来压缩前端字体的,优化前端请求速度的;
  • 使用的过程中,遇到了不少的坑,把这个过程记录下来,防止再犯。

安装

# fontTools 4.56.0
pip install fontTools

提取子字体集

方法一:–text 参数

  • 很多资料里面都是介绍使用–text,可是它不会把"加入到子集中,反而报错;
  • 这个坑死我了,一旦–text中存在"的时候,则会一直报错或者提前中断。
import os
# 定义需要保留的字符
string = "1234567890"
# 模拟执行pyftsubset命令生成字体子集
os.system(
    'pyftsubset ./x1.ttf --text="{}" --output-file=./x2.ttf'.format(string)
)

方法二:–text-file 参数

  • 该方法一直找不到,还是官网查找的,使用起来很方便;
  • 该方法就是需要.txt文件,作为中间产物进行操作。
import os
# 模拟执行pyftsubset命令生成字体子集
os.system(
    'pyftsubset ./x1.ttf --text-file=./x.txt --output-file=./x2.ttf'
)

方法三:代码形式

  • 该方法就把上面的方法一与方法二的痛点都解决了。
from fontTools import subset

# 字符去重
support = set()
# 读入目标文本内容
with open('./x.txt', encoding='utf-8') as t:
    support = set(t.read())

# 嵌入代码中,实现生成字体子集
options = subset.Options()
# 加载字体
font = subset.load_font('./x1.ttf', options)
subsetter = subset.Subsetter(options=options)
subsetter.populate(text=str(support))
subsetter.subset(font)
subset.save_font(font, './x2.ttf', options)

问题

xxx…is not recognized as an internal or external command,operable program or batch file

  • 就是文件里面多了"'

相关文章:

  • 浅分析 PE3R 感知高效的三维重建
  • LeetCode[242]有效的字母异位词
  • 【Linux】Windows 客户端访问 Linux 服务器
  • 解释什么是受控组件和非受控组件
  • VSTO(C#)Excel开发11:自定义任务窗格与多个工作簿
  • Chapter 4-15. Troubleshooting Congestion in Fibre Channel Fabrics
  • 游戏盾是什么?如何为在线游戏保驾护航?
  • 【Qt】QWidget属性2
  • FastAPI WebSocket 无法获取真实 IP 错误记录
  • Redis 跳表原理详解
  • CSV文件格式
  • 深度学习中的“刹车”:正则化如何防止模型“超速”
  • 用Promise实现ajax的自动重试
  • 【uniapp】记录tabBar不显示踩坑记录
  • 大数据学习(75)-大数据组件总结
  • S32K144外设实验(三):ADC单通道连续采样(中断)
  • Android第五次面试总结(网络篇)
  • Linux上位机开发实战(camera视频读取)
  • 【DeepSeek 学C+】effective modern c+ 条款七 初始化
  • 【c++】【STL】unordered_set 底层实现(简略版)
  • 图忆|红场阅兵:俄罗斯30年来的卫国战争胜利日阅兵式
  • A股低开高走全线上涨:军工股再度领涨,两市成交12934亿元
  • 奥利弗·斯通回顾越战50周年:我们不善于总结历史教训
  • 上海市委政法委召开会议传达学习总书记重要讲话精神
  • 加拿大总理访美与特朗普“礼貌交火”
  • 长三角铁路五一假期发送旅客超2000万人次,同比增幅超一成