# GSFont

一个用于生成字体子集的命令行工具，可以从字体文件中提取指定文本所需的字符，生成更小的字体文件。

## 特性

- 支持 TTF 和 OTF 字体格式
- 可输出多种字体格式 (TTF, OTF, WOFF, WOFF2, SVG, EOT)
- 使用 opentype.js 处理 OTF 文件
- 使用 fontmin 处理 TTF 文件

## 安装

```bash
npm install -g gsfont
```

或者本地安装:

```bash
npm install gsfont
```

## 使用方法

```bash
gsfont -t <文本文件> -f <字体文件> -o <输出目录> -e <输出格式>
```

### 参数说明

- `-t, --text <file>`: 包含需要保留的字符的文本文件路径 (必需)
- `-f, --font <file>`: 原始字体文件路径 (必需)
- `-o, --output <dir>`: 输出目录 (默认: "./output")
- `-e, --ext <type>`: 输出字体类型 (ttf/otf/woff/woff2/svg/eot) (默认: "ttf")
- `-d, --debug`: 启用调试模式
- `-h, --help`: 显示帮助信息
- `-V, --version`: 显示版本号

### 示例

1. 生成包含特定字符的 TTF 子集字体:

```bash
echo "你好，世界！" > text.txt
gsfont -t text.txt -f ./fonts/MFZhuHei-Bold.ttf
```

2. 生成 WOFF 格式的字体子集:

```bash
gsfont -t text.txt -f ./fonts/MFZhuHei-Bold.ttf -e woff
```

3. 处理 OTF 格式的字体并输出到指定目录:

```bash
gsfont -t text.txt -f ./fonts/MFZhuHei-Bold.otf -o ./web-fonts -e woff2
```

## 工作原理

- 对于 OTF 格式的字体，使用 opentype.js 进行子集化处理
- 对于 TTF 格式的字体，使用 fontmin 进行处理

## 许可证

MIT
