emWin FontConvert通过命令行方式调用

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值