Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

pat-fontmgr

当前版本:v1.0.0

Windows 字体管理工具(tkinter GUI):浏览本机已安装字体、预览多语言效果、查看字符集、筛选对比,并可将结果导出为 PNG 图片。

采用图形界面(无需命令行),适合日常筛选字体、检查字体是否包含指定字符、对比中英文渲染效果。


功能特性

1. 字体发现

  • 自动扫描系统字体目录 C:\Windows\Fonts 与用户字体目录 %LOCALAPPDATA%\Microsoft\Windows\Fonts
  • 支持 .ttf / .otf / .ttc / .otc 格式
  • 中文字体名使用本地化名称显示(如「微软雅黑」而非「Microsoft YaHei」)

2. 中英文预览(页签一)

  • 每行显示一个字体:字体名称 + 效果列
  • 显示内容切换:英文 / 简体 / 繁体,三种文本可独立编辑
  • 预设文本:下拉快速填入常用样张(英文、中文简体、中文繁体)
  • 样式控制:可调字号(8–96)、粗体、斜体
  • 分页浏览:每页 15 个字体,支持上一页 / 下一页
  • 字体筛选:弹出多选窗口,勾选后只显示选中的字体;「全部显示」一键恢复
  • 鼠标滚轮:在字体列表区域直接滚动浏览

3. 字符集查看(页签二)

  • 按 Unicode 标准区块(Block) 组织,覆盖拉丁、希腊、西里尔、国际音标、平假名、片假名、注音、CJK 部首、康熙部首、汉字、数学运算符、制表绘图符、几何、箭头、杂项符号、全角等 50 余个常用区块
  • 逐字符网格预览,行列数随窗口与字号自适应铺满页面
  • 字体切换:下拉框选择字体,或用「◀ 上一个 / 下一个 ▶」在全部字体间循环切换(重名项为同一字族的不同变体,逐个切换可分别查看)
  • 显示模式:完整 + 缺字标注 / 仅该字体支持
  • 编码查看:Unicode 码点 / GBK / GB18030 三种编码值切换
  • 双击复制:双击任意字符,将其复制到剪贴板(底部状态栏会提示)
  • 字符集独立字号调节(默认 60)

4. 帮助(页签三)

  • 内置「帮助」页签,分级排版展示详细系统功能说明(中英文 / 字符集 / 通用操作),无需查阅外部文档

5. 元信息查看

  • 右键任意字体,弹出窗口查看:字体族、全名、文件名、路径、版本、版权、厂商

6. PNG 导出

  • 中英文页:将当前列表页导出为 PNG
  • 字符集页:将当前字符集网格页导出为 PNG
  • 保存对话框默认定位到桌面路径,避免默认目录无权限

7. 性能优化

  • 字体加载 / 中文字形判断 / 字符映射表均带缓存(key 为 (path, size, bold, italic)),避免重复 IO
  • 字符集网格渲染直接在主图上逐字符绘制,避免每字符创建临时图片,显著降低切换字体 / 翻页时的卡顿
  • 简体 / 繁体模式下自动过滤不含中文字形的字体

环境要求

  • Windows
  • Python 3.9+(推荐 3.11,自带 tkinter)
  • 依赖:Pillow、fonttools(见 requirements.txt)

安装与运行

# 安装依赖
pip install -r requirements.txt

# 直接启动
python main.py

或双击 start.bat(自动优先使用带 tkinter 的 Python 3.11 环境,纯英文内容避免代码页乱码)。


编译 exe

使用 PyInstaller 打包为单文件 exe(无控制台窗口),并附带启动画面(splash)与应用图标。

1. 安装打包工具

pip install pyinstaller

2. 生成资源

# 生成图标与启动画面(蓝色 Aa 图标方案)
python gen_dark_icon.py    # 深色青发光 Aa 图标(推荐,会覆盖 assets/app.ico)
python gen_assets.py       # 蓝色 Aa 图标 + 启动画面 splash.png(如需)

生成产物:

  • assets/app.ico — 应用 / exe 图标(多尺寸)
  • assets/splash.png — 启动画面

3. 打包(推荐用 spec)

python -m PyInstaller pat-fontmgr.spec --noconfirm

pat-fontmgr.spec 已配置:

  • --onefile 单文件、--noconsole 隐藏控制台
  • --icon 应用图标(exe 图标)
  • --splash 启动画面(应用窗口真正显示后才关闭)
  • --add-data 携带 assets/app.ico 运行时资源

也支持命令行方式

python -m PyInstaller --onefile --noconsole --name pat-fontmgr `
  --icon assets/app.ico `
  --splash assets/splash.png `
  --add-data "assets/app.ico;assets" `
  main.py

打包产物

  • 输出:dist/pat-fontmgr.exe
  • 中间文件:build/ 目录(可忽略)
  • build/ 与 dist/ 已在 .gitignore 中忽略,不会上传到仓库

发布

dist/pat-fontmgr.exe 是编产生的二进制,不属于源码,不应 commit 进版本库。对外分发请走 GitHub Releases。

方式一:命令行(gh)

# 创建标签并推送
git tag v1.0.0
git push origin v1.0.0

# 创建 Release 并上传 exe
gh release create v1.0.0 "dist/pat-fontmgr.exe" --title "pat-fontmgr v1.0.0" --notes "更新说明"

方式二:网页操作

  1. 进入仓库页面 → 右侧 Releases → Draft a new release
  2. 填写标签版本号(如 v1.0.0)与发布说明
  3. 拖拽 dist/pat-fontmgr.exe 到附件区上传
  4. 点击 Publish release

项目结构

pat-fontmgr/
├── main.py            # 程序入口(含启动画面控制)
├── start.bat          # 启动脚本(纯英文,避免编码问题)
├── requirements.txt   # 依赖清单
├── pat-fontmgr.spec   # PyInstaller 打包配置
├── gen_assets.py      # 生成图标 + 启动画面资源
├── gen_dark_icon.py   # 生成深色青发光 Aa 图标
├── assets/            # 图标资源(app.ico、splash.png、候选图)
├── Docs/              # 需求与设计文档
└── fontmgr/
    ├── fonts.py       # 字体枚举与元信息读取
    ├── renderer.py    # Pillow 字体渲染(带缓存)
    ├── charsets.py    # 字符集(Unicode Block)定义与字符信息查询
    ├── exporter.py    # PNG 导出
    └── ui.py          # tkinter 主界面

说明

  • 中文字体名使用本地化名称显示(如「微软雅黑」)
  • 简体 / 繁体模式下仅显示含中文字形的字体
  • 字符集表格行列数随窗口与字号自适应,尽量铺满页面
  • 关闭 GUI 窗口后,start.bat 自动退出;仅启动失败时暂停显示错误信息

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages