FontConvert命令行
命令
C:\Program Files (x86)\SEGGER\FontCvtV318>FontCvt.exe -?
FontCvt.exe -exit -create"微软雅黑,REGULAR,24,EXT,UC16" -enable"0000-FFFF,0" -readpattern"a_test.txt" -saveas"test_c.c,C"
参数说明
-
-exit
执行完成后退出程序 -
-create
创建字体相关的信息。注意,create后面二次参数需要带引号“”- 微软雅黑:字体
- REGULAR: 常规
- 24: 字体大小
- EXT: -Extended Font
- U16: 16bit Unicode encoding
-
-enable
使能或禁止相关的范围.(注意:该参数后带二次参数)
“0000-FFFF,0” 表示Disable 0000-FFFF范围内的字符 -
-readpattern
字库文件“a_test.txt” -
saveas
“test_c.c,C”
test_c.c: 保存文件名称
C: 文件类型为C 文件
调用cmd时出现Font does not exist
在某目录下文件:
- FontConvertTool.cmd
- FontCvt.exe
- CharacterLib.txt
.\FontCvt.exe -exit -create"Noto Sans Mono CJK SC,REGULAR,24,EXT,UC16" -enable"0000-FFFF,0" -readpattern"CharacterLib.txt" -saveas".\test_c.c,C"
执行上述语句出现Font does not exist错误对话框
检查字体安装目录
自己单独下载的字体点击安装后发现安装的目录为当前用户的目录,不在C:\WINDOWS\FONTS目录下面
先删除自己单独安装的字体。在安装字体的时候右击字体文件,选Install for all users(为所有用户安装),安装后字体路径和系统自带的字体路径一致。
真正的原因
字体需要写上全称
.\FontCvt.exe -exit -create"Noto Sans Mono CJK SC Regular,REGULAR,24,EXT,UC16" -enable"0000-FFFF,0" -readpattern"CharacterLib.txt" -saveas".\test_c.c,C"
注意:这里的Regular和后面的参数REGULAR要区别开来。一个是字体全称的一部分,另一个是执行命令的参数的一部分。
这样子就能生成对应字体的.c文件了。
python 中调用cmd命令
一个cmd中可能有空行和以@rem开头的注释,如果
def run_cmd_exe(file_name):
try:
file = open(file_name, 'r', encoding='utf-8')
lines = file.readlines()
for line in lines:
line.strip() # 去掉每行头尾空白
if not len(line.strip()) or line.startswith('@rem'): #判断是否为空行或者以@开头
continue
line.rstrip('\n')
my_print(line)
res = os.popen(line)
output_str = res.read()
my_print(output_str)
except Exception as e:
my_print(e)