Skip to content

Instantly share code, notes, and snippets.

@Jeffer-Lin
Forked from Kennyl/! FontForge Script .md
Created December 19, 2021 01:35
Show Gist options
  • Save Jeffer-Lin/665d4b722adaffcc698f40ea99829ac3 to your computer and use it in GitHub Desktop.
Save Jeffer-Lin/665d4b722adaffcc698f40ea99829ac3 to your computer and use it in GitHub Desktop.
FontForge Script !!! Good for Epub, TTF reduce, Traditional Chinese adapt Simplified Chinese

Obsoleted please refer to here for New Scripts

Center All Chinese Punctuations

A simple word list test file, only one to one case, no one to many case

A Word list there is simple different from TC and SC, only one to one case, no one to many case

Substitute glyph A to glyph B, useful for simplified chinese word with traditional chinese display glyph.

目的是將簡體字但用繁體字體寫法出來。

Reduce ttf size, clear all glyph that is not included in word list ('extendStoC') Something Similiar to calibre ebook-polish --subset-fonts

減瘦TTF字型,可以㵴小EPUB包裝。

# FontForge GUI -> File -> Execute Script -> Python -> <Paste> -> OK
punctuations = [b"。", b",", b"、", b";", b":", b"?", b"!"]
ff = fontforge.activeFont()
ff.selection.none()
for punctuation in punctuations:
fontforge.logWarning(punctuation.decode('utf8').encode("unicode_escape"))
p = 'u'+punctuation.decode('utf8').encode("unicode_escape")[2:]
fontforge.logWarning(p)
ff.selection.select(("more", None),p )
# Better use FontForge GUI -> Metrics -> "Center in Width" rather than using below.
ff.genericGlyphChange(stemScale=1.0,
hCounterType="center",
vCounterType="scaled",
vCounterScale=1.0)
內 内
勻 匀
戶 户
冊 册
丟 丢
亙 亘
吒 咤
汙 污
佇 伫
兌 兑
刪 删
吳 吴
呂 吕
囪 囱
壯 壮
夾 夹
妝 妆
決 决
沒 没
災 灾
禿 秃
見 见
貝 贝
車 车
迆 迤
亞 亚
來 来
兒 儿
兩 两
協 协
姍 姗
屆 届
岡 冈
拋 抛
東 东
歿 殁
況 况
爭 争
狀 状
玨 珏
糾 纠
羋 芈
臥 卧
軋 轧
長 长
門 门
俠 侠
侶 侣
兗 兖
則 则
勁 劲
卻 却
奐 奂
姪 侄
帥 帅
彥 彦
恆 恒
柵 栅
洶 汹
為 为
紂 纣
紅 红
紀 纪
紉 纫
紇 纥
約 约
苧 苎
計 计
訂 订
訃 讣
貞 贞
負 负
軍 军
軌 轨
閂 闩
韋 韦
頁 页
風 风
飛 飞
倆 俩
們 们
倀 伥
個 个
倫 伦
倉 仓
凍 冻
剛 刚
剝 剥
員 员
娛 娱
孫 孙
宮 宫
峽 峡
島 岛
師 师
庫 库
徑 径
恥 耻
悅 悦
挾 挟
時 时
晉 晋
書 书
氣 气
涇 泾
烏 乌
狹 狭
狽 狈
畝 亩
皰 疱
紡 纺
紗 纱
紋 纹
純 纯
紐 纽
紕 纰
級 级
紜 纭
納 纳
紙 纸
紛 纷
脅 胁
脈 脉
芻 刍
荊 荆
茲 兹
記 记
訐 讦
討 讨
訌 讧
訕 讪
訊 讯
訓 训
訖 讫
豈 岂
財 财
貢 贡
軒 轩
軔 轫
釘 钉
針 针
釗 钊
閃 闪
陣 阵
陝 陕
馬 马
偽 伪
偉 伟
偵 侦
側 侧
務 务
動 动
區 区
參 参
啞 哑
問 问
國 国
堅 坚
堊 垩
執 执
夠 够
婁 娄
婦 妇
專 专
將 将
屜 屉
崢 峥
帶 带
帳 帐
張 张
強 强
從 从
悵 怅
掃 扫
掛 挂
捫 扪
掄 抡
掙 挣
敗 败
啟 启
敘 叙
斬 斩
晝 昼
勗 勖
桿 杆
棄 弃
梔 栀
條 条
梟 枭
殺 杀
氫 氢
涼 凉
淺 浅
淵 渊
淚 泪
淪 沦
淨 净
牽 牵
猙 狰
現 现
產 产
畢 毕
異 异
眾 众
絆 绊
統 统
紹 绍
紼 绋
絀 绌
細 细
紳 绅
組 组
終 终
缽 钵
習 习
脣 唇
脫 脱
莢 荚
莖 茎
莊 庄
處 处
術 术
袞 衮
覓 觅
規 规
訪 访
訝 讶
訣 诀
訥 讷
許 许
設 设
訟 讼
訛 讹
販 贩
責 责
貫 贯
貨 货
貪 贪
貧 贫
軛 轭
軟 软
這 这
連 连
逕 迳
釵 钗
釣 钓
釧 钏
閉 闭
陳 陈
陸 陆
陰 阴
頂 顶
頃 顷
魚 鱼
鳥 鸟
麥 麦
備 备
傖 伧
傘 伞
凱 凯
剴 剀
創 创
勞 劳
勝 胜
勛 勋
喪 丧
單 单
喲 哟
喚 唤
喬 乔
圍 围
堯 尧
場 场
報 报
壺 壶
尋 寻
嵐 岚
幀 帧
廁 厕
廂 厢
惡 恶
悶 闷
愜 惬
惻 恻
惱 恼
揀 拣
揮 挥
換 换
揚 扬
棗 枣
棟 栋
棧 栈
棲 栖
欽 钦
殘 残
殼 壳
湧 涌
湊 凑
減 减
渦 涡
湯 汤
測 测
渾 浑
渙 涣
無 无
猶 犹
琺 珐
畫 画
痙 痉
盜 盗
硯 砚
稈 秆
稅 税
筆 笔
筍 笋
絞 绞
結 结
絨 绒
絕 绝
絲 丝
絡 络
給 给
絢 绚
肅 肃
腎 肾
脹 胀
華 华
萊 莱
虛 虚
視 视
詠 咏
評 评
詞 词
詁 诂
詔 诏
詛 诅
詐 诈
詆 诋
訴 诉
診 诊
貯 贮
貼 贴
貳 贰
貽 贻
賁 贲
費 费
賀 贺
貴 贵
買 买
貶 贬
貿 贸
貸 贷
軻 轲
軸 轴
軼 轶
進 进
郵 邮
鄉 乡
鈔 钞
鈣 钙
鈕 钮
鈉 钠
鈞 钧
鈍 钝
鈐 钤
閔 闵
閏 闰
開 开
間 间
隊 队
階 阶
陽 阳
雋 隽
韌 韧
項 项
順 顺
飪 饪
飯 饭
飩 饨
飲 饮
飭 饬
馮 冯
馭 驭
黃 黄
亂 乱
債 债
傳 传
僅 仅
傾 倾
傷 伤
傯 偬
勢 势
嗎 吗
嗇 啬
嗚 呜
嗆 呛
園 园
圓 圆
塗 涂
塊 块
塢 坞
奧 奥
媽 妈
媼 媪
廈 厦
愛 爱
慍 愠
愾 忾
愴 怆
損 损
搶 抢
搖 摇
搗 捣
暉 晖
暈 晕
會 会
業 业
極 极
楊 杨
楨 桢
楓 枫
歲 岁
溝 沟
滅 灭
溼 湿
溫 温
滄 沧
煩 烦
煬 炀
煥 焕
爺 爷
獅 狮
琿 珲
痺 痹
盞 盏
睞 睐
睜 睁
祿 禄
萬 万
稜 棱
稟 禀
節 节
粵 粤
經 经
絹 绢
綁 绑
綏 绥
義 义
羨 羡
聖 圣
腸 肠
腳 脚
腫 肿
腦 脑
葷 荤
葦 苇
葉 叶
萵 莴
虜 虏
號 号
蛻 蜕
補 补
裝 装
詫 诧
該 该
詳 详
試 试
詩 诗
詰 诘
詼 诙
詣 诣
誠 诚
話 话
誅 诛
詭 诡
詢 询
詮 诠
詬 诟
賊 贼
資 资
賈 贾
賄 贿
貲 赀
賃 赁
賂 赂
賅 赅
跡 迹
較 较
載 载
軾 轼
輊 轾
農 农
運 运
達 达
違 违
過 过
鄒 邹
鈷 钴
鉗 钳
鈸 钹
鈽 钚
鉀 钾
鈾 铀
鉛 铅
鉤 钩
鉑 铂
鈴 铃
閘 闸
隕 陨
電 电
預 预
頑 顽
頓 顿
頊 顼
頒 颁
頌 颂
飼 饲
飴 饴
飽 饱
飾 饰
馳 驰
馱 驮
馴 驯
鳩 鸠
僥 侥
僑 侨
匱 匮
厭 厌
嘔 呕
嘆 叹
嘍 喽
嘖 啧
團 团
圖 图
塵 尘
墊 垫
塹 堑
壽 寿
夢 梦
奪 夺
奩 奁
嫗 妪
寧 宁
實 实
寢 寝
對 对
屢 屡
嶄 崭
嶇 岖
幣 币
幗 帼
徹 彻
態 态
慣 惯
慟 恸
慚 惭
慘 惨
摟 搂
摑 掴
暢 畅
榮 荣
槓 杠
構 构
槍 枪
氳 氲
滾 滚
漬 渍
漢 汉
滿 满
滯 滞
漸 渐
漲 涨
漣 涟
滬 沪
漁 渔
滲 渗
滌 涤
爾 尔
犖 荦
獄 狱
瑤 瑶
瑣 琐
瑪 玛
瘧 疟
瘍 疡
瘋 疯
瘓 痪
監 监
碩 硕
禎 祯
禍 祸
種 种
稱 称
窪 洼
窩 窝
箋 笺
箏 筝
綻 绽
綰 绾
綜 综
綽 绰
綾 绫
綠 绿
緊 紧
綴 缀
網 网
綱 纲
綺 绮
綢 绸
綿 绵
綸 纶
維 维
緒 绪
緇 缁
罰 罚
聞 闻
與 与
蒞 莅
蓋 盖
蓀 荪
蒼 苍
蝕 蚀
誦 诵
語 语
誣 诬
認 认
誡 诫
誤 误
說 说
誥 诰
誨 诲
誘 诱
誑 诳
賓 宾
賑 赈
賒 赊
趙 赵
趕 赶
輔 辅
輒 辄
輕 轻
遠 远
遜 逊
遙 遥
遞 递
鉸 铰
銬 铐
銀 银
銅 铜
銘 铭
銖 铢
鉻 铬
銓 铨
閡 阂
閨 闺
閩 闽
閣 阁
閥 阀
際 际
頗 颇
領 领
颯 飒
餃 饺
餅 饼
餌 饵
餉 饷
駁 驳
骯 肮
鳴 鸣
鳶 鸢
鳳 凤
齊 齐
億 亿
儀 仪
價 价
儂 侬
儈 侩
儉 俭
凜 凛
劇 剧
劉 刘
劍 剑
厲 厉
嘮 唠
噓 嘘
噴 喷
嘯 啸
嘰 叽
墳 坟
墜 坠
墮 堕
嫻 娴
嬋 婵
嫵 妩
嬌 娇
寬 宽
審 审
寫 写
層 层
幟 帜
廢 废
廚 厨
廟 庙
廝 厮
廣 广
廠 厂
彈 弹
慶 庆
慮 虑
憂 忧
慫 怂
憐 怜
憫 悯
憚 惮
憤 愤
摯 挚
撲 扑
撈 捞
撐 撑
撥 拨
撓 挠
撫 抚
敵 敌
數 数
暫 暂
樣 样
槨 椁
樁 桩
樞 枢
標 标
樓 楼
槳 桨
樂 乐
樅 枞
歐 欧
殤 殇
毆 殴
漿 浆
潑 泼
潔 洁
澆 浇
潛 潜
潰 溃
潤 润
澗 涧
熱 热
犛 牦
獎 奖
瑩 莹
瘡 疮
皚 皑
皺 皱
盤 盘
瞇 眯
確 确
碼 码
窯 窑
窮 穷
範 范
締 缔
練 练
緯 纬
緻 致
緘 缄
緬 缅
緝 缉
編 编
緣 缘
線 缐
緞 缎
緩 缓
綞 缍
罵 骂
罷 罢
膠 胶
膚 肤
蓮 莲
蔭 荫
蔣 蒋
蔥 葱
蝦 虾
蝸 蜗
衛 卫
誼 谊
諒 谅
談 谈
諄 谆
誕 诞
請 请
諸 诸
課 课
諉 诿
諂 谄
調 调
誰 谁
論 论
諍 诤
豎 竖
豬 猪
賠 赔
賞 赏
賦 赋
賤 贱
賬 账
賭 赌
賢 贤
賣 卖
賜 赐
質 质
踐 践
輝 辉
輛 辆
輟 辍
輩 辈
輦 辇
輪 轮
輜 辎
適 适
遷 迁
鄰 邻
鄭 郑
鄧 邓
醃 腌
鋅 锌
銻 锑
銷 销
鋪 铺
鋤 锄
鋁 铝
銳 锐
銼 锉
鋒 锋
閭 闾
閱 阅
鞏 巩
頡 颉
養 养
餓 饿
餒 馁
駝 驼
駐 驻
駟 驷
駛 驶
駑 驽
駕 驾
駒 驹
駙 驸
鬧 闹
魷 鱿
魯 鲁
鴆 鸩
鴉 鸦
麩 麸
齒 齿
儔 俦
儐 傧
劑 剂
噸 吨
噥 哝
噯 嗳
墾 垦
奮 奋
學 学
導 导
憲 宪
憑 凭
憊 惫
懍 懔
憶 忆
戰 战
擁 拥
擋 挡
撻 挞
據 据
擄 掳
擇 择
撿 捡
擔 担
曉 晓
樺 桦
橫 横
樹 树
橢 椭
橋 桥
機 机
澱 淀
濃 浓
澤 泽
濁 浊
熾 炽
燉 炖
燒 烧
燈 灯
燙 烫
燜 焖
獨 独
璣 玑
甌 瓯
盧 卢
瞞 瞒
磚 砖
積 积
穎 颖
穌 稣
窺 窥
簑 蓑
築 筑
篤 笃
篛 箬
篩 筛
縊 缢
縑 缣
縈 萦
縛 缚
縣 县
膩 腻
興 兴
艙 舱
蕭 萧
蕪 芜
螞 蚂
螢 萤
褲 裤
親 亲
覦 觎
諦 谛
諺 谚
諫 谏
諱 讳
謀 谋
諜 谍
諧 谐
諮 谘
諾 诺
謁 谒
謂 谓
諷 讽
諭 谕
貓 猫
賴 赖
踴 踊
輻 辐
輯 辑
輸 输
辦 办
選 选
遲 迟
遼 辽
遺 遗
錠 锭
鋸 锯
錳 锰
錯 错
錢 钱
鋼 钢
錫 锡
錄 录
錚 铮
錐 锥
錦 锦
閻 阎
隨 随
險 险
靜 静
靦 䩄
頰 颊
頸 颈
頻 频
頷 颔
頭 头
頹 颓
頤 颐
館 馆
餞 饯
餛 馄
餡 馅
駭 骇
駢 骈
駱 骆
鮑 鲍
鴕 鸵
鴣 鸪
鴦 鸯
鴨 鸭
鴒 鸰
鴛 鸳
龍 龙
龜 龟
優 优
償 偿
儲 储
勵 励
嚀 咛
嚇 吓
壓 压
嬰 婴
嬪 嫔
嬤 嬷
尷 尴
嶼 屿
嶺 岭
幫 帮
應 应
懇 恳
戲 戏
擊 击
擠 挤
擰 拧
擬 拟
擱 搁
斂 敛
斃 毙
曖 暧
檔 档
檢 检
檜 桧
櫛 栉
殮 殓
濘 泞
濱 滨
濟 济
濤 涛
濫 滥
澀 涩
營 营
燦 灿
燭 烛
燴 烩
牆 墙
獰 狞
環 环
璦 瑷
癆 痨
療 疗
矯 矫
磯 矶
禪 禅
簍 篓
糞 粪
縮 缩
績 绩
繆 缪
縷 缕
縲 缧
繃 绷
縫 缝
總 总
縱 纵
繅 缫
聲 声
聰 聪
聯 联
聳 耸
膿 脓
膽 胆
臉 脸
膾 脍
臨 临
舉 举
艱 艰
薔 蔷
虧 亏
螻 蝼
蟈 蝈
褻 亵
褸 褛
覬 觊
謎 谜
謗 谤
謙 谦
講 讲
謊 谎
謠 谣
謝 谢
謄 誊
賺 赚
賽 赛
購 购
趨 趋
轄 辖
輾 辗
轅 辕
輿 舆
還 还
邁 迈
醞 酝
鍍 镀
鎂 镁
錨 锚
鍵 键
鍥 锲
鍋 锅
錘 锤
鍬 锹
鍛 锻
鍰 锾
闊 阔
闋 阕
闌 阑
闈 闱
隱 隐
隸 隶
雖 虽
韓 韩
顆 颗
颶 飓
騁 骋
駿 骏
鮮 鲜
鮫 鲛
鮪 鲔
鴻 鸿
鴿 鸽
點 点
齋 斋
叢 丛
嚕 噜
壙 圹
壘 垒
嬸 婶
懣 懑
擴 扩
擲 掷
擾 扰
攆 撵
擺 摆
擻 擞
斷 断
檳 槟
櫃 柜
檻 槛
檸 柠
歟 欤
歸 归
殯 殡
瀉 泻
濾 滤
瀆 渎
濺 溅
瀏 浏
燻 熏
獷 犷
獵 猎
甕 瓮
癘 疠
礎 础
禮 礼
穡 穑
穢 秽
竄 窜
竅 窍
簫 箫
簞 箪
簣 篑
簡 简
糧 粮
織 织
繕 缮
繞 绕
繚 缭
繡 绣
翹 翘
職 职
聶 聂
臍 脐
臏 膑
舊 旧
薩 萨
藍 蓝
蟯 蛲
蟬 蝉
覲 觐
觴 觞
謨 谟
謹 谨
謬 谬
豐 丰
贅 赘
蹣 蹒
蹤 踪
軀 躯
轉 转
轍 辙
邇 迩
醫 医
醬 酱
釐 厘
鎔 镕
鎊 镑
鎖 锁
鎢 钨
鎳 镍
鎮 镇
闔 阖
闖 闯
闐 阗
雜 杂
雙 双
雛 雏
雞 鸡
額 额
顏 颜
題 题
顎 颚
顓 颛
颺 飏
餾 馏
餿 馊
餽 馈
騎 骑
鯊 鲨
鯉 鲤
鯽 鲫
鵑 鹃
鵝 鹅
鵠 鹄
嚨 咙
壟 垄
壢 坜
寵 宠
龐 庞
廬 庐
懲 惩
懷 怀
懶 懒
攏 拢
曠 旷
櫥 橱
櫝 椟
櫚 榈
櫓 橹
瀟 潇
瀨 濑
瀝 沥
瀕 濒
爍 烁
牘 牍
犢 犊
獸 兽
獺 獭
璽 玺
瓊 琼
疇 畴
礙 碍
禱 祷
穩 稳
簷 檐
繭 茧
繹 绎
繩 绳
繪 绘
羅 罗
羶 膻
臘 腊
藝 艺
藪 薮
藥 药
蟻 蚁
蠅 蝇
蠍 蝎
襠 裆
襖 袄
譜 谱
識 识
譚 谭
譎 谲
譏 讥
贈 赠
蹺 跷
轔 辚
轎 轿
辭 辞
邊 边
鏡 镜
鏑 镝
鏃 镞
鏈 链
鏜 镗
鏝 镘
鏢 镖
鏍 镙
鏘 锵
鏤 镂
鏗 铿
關 关
隴 陇
離 离
難 难
霧 雾
韜 韬
韻 韵
類 类
顛 颠
颼 飕
饅 馒
騖 骛
騙 骗
鯨 鲸
鯧 鲳
鶉 鹑
鵡 鹉
鵲 鹊
鵪 鹌
鵬 鹏
麗 丽
麴 麹
勸 劝
嚶 嘤
嚴 严
寶 宝
懸 悬
懺 忏
攔 拦
攙 搀
朧 胧
瀾 澜
爐 炉
犧 牺
獻 献
瓏 珑
癢 痒
礦 矿
礪 砺
礬 矾
礫 砾
竇 窦
競 竞
籌 筹
籃 篮
辮 辫
繽 缤
繼 继
臚 胪
艦 舰
藹 蔼
藺 蔺
蘆 芦
蘊 蕴
蠔 蚝
襤 褴
覺 觉
觸 触
議 议
譯 译
贏 赢
贍 赡
躉 趸
躂 跶
釋 释
鐃 铙
鏽 锈
闡 阐
飄 飘
饒 饶
騫 骞
騰 腾
騷 骚
鰓 鳃
鰍 鳅
黨 党
齟 龃
齡 龄
儷 俪
囁 嗫
囀 啭
囂 嚣
屬 属
懼 惧
懾 慑
攝 摄
攜 携
櫻 樱
欄 栏
殲 歼
爛 烂
癩 癞
矓 眬
纏 缠
續 续
蘭 兰
蘚 藓
蠣 蛎
蠟 蜡
襪 袜
覽 览
譴 谴
護 护
譽 誉
贓 赃
躊 踌
躍 跃
轟 轰
辯 辩
鐮 镰
鐳 镭
鐵 铁
鐺 铛
鐸 铎
鐲 镯
響 响
顧 顾
驅 驱
驃 骠
驀 蓦
騾 骡
髏 髅
鰭 鳍
鰥 鳏
鶯 莺
鶴 鹤
鷂 鹞
齜 龇
齦 龈
儼 俨
囈 呓
囉 啰
孿 孪
巔 巅
巒 峦
彎 弯
攤 摊
權 权
歡 欢
灑 洒
灘 滩
玀 猡
疊 叠
癮 瘾
癬 癣
籠 笼
籟 籁
聾 聋
聽 听
襲 袭
襯 衬
讀 读
贖 赎
贗 赝
躑 踯
轡 辔
鑄 铸
霽 霁
韃 鞑
韁 缰
顫 颤
驕 骄
鱉 鳖
鰱 鲢
鰾 鳔
鰻 鳗
鷓 鹧
鷗 鸥
鼴 鼹
齬 龉
齪 龊
龔 龚
戀 恋
攣 挛
攪 搅
竊 窃
纓 缨
纖 纤
蘿 萝
蠱 蛊
變 变
邐 逦
邏 逻
鑣 镳
鑠 铄
靨 靥
顯 显
饜 餍
驚 惊
驛 驿
驗 验
體 体
鱔 鳝
鱗 鳞
鱖 鳜
鷥 鸶
囑 嘱
壩 坝
攬 揽
癱 瘫
癲 癫
羈 羁
蠶 蚕
讓 让
讒 谗
讖 谶
贛 赣
釀 酿
靂 雳
靈 灵
靄 霭
顰 颦
驟 骤
鬢 鬓
魘 魇
鷹 鹰
鷺 鹭
鹼 硷
鹽 盐
鼇 鳌
齷 龌
齲 龋
廳 厅
欖 榄
灣 湾
籬 篱
籮 箩
蠻 蛮
觀 观
躡 蹑
釁 衅
鑲 镶
鑰 钥
顱 颅
饞 馋
灤 滦
矚 瞩
驢 驴
驥 骥
纜 缆
躪 躏
鑽 钻
鑾 銮
鑼 锣
鱷 鳄
鱸 鲈
黷 黩
豔 艳
鑿 凿
鸚 鹦
驪 骊
鸞 鸾
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import collections
from io import open
import sys
# ignore warning
# import warnings
# warnings.filterwarnings("ignore")
# can use 3 or 2
from PyQt5.QtWidgets import (QDialog, QPushButton, QLineEdit, QLabel,
QApplication, QVBoxLayout)
from PyQt5.QtCore import Qt
class askSetting(QDialog):
def __init__(self,
app=None,
parent=None,
items=None):
super(askSetting, self).__init__(parent)
self.app = app
self.items = items
layout = QVBoxLayout()
self.lineedits = {}
for key in items.keys():
layout.addWidget(QLabel(key))
self.lineedits[key] = QLineEdit()
self.lineedits[key].setText(items[key])
# enable ime input
self.lineedits[key].inputMethodQuery(Qt.ImEnabled)
layout.addWidget(self.lineedits[key])
self.btn = QPushButton('OK', self)
self.btn.clicked.connect(lambda: (self.bye(items)))
self.btn.setFocusPolicy(Qt.StrongFocus)
layout.addWidget(self.btn)
self.setLayout(layout)
self.setWindowTitle(' Setting ')
def bye(self, items):
for key in self.lineedits.keys():
self.items[key] = self.lineedits[key].text()
self.close()
self.app.exit(1)
inFilePrompt = "File to read"
defaultInFile = "extendStoTC"
outFilePrompt = "File to write"
defaultOutFile = "fontforge.script"
items = collections.OrderedDict()
items[inFilePrompt] = defaultInFile
items[outFilePrompt] = defaultOutFile
app = QApplication(sys.argv)
ask = askSetting(app=app, items=items)
ask.show()
rtnCode = app.exec_()
# If press OK button rtnCode should be 1
if rtnCode != 1:
print('User abort by closing Setting dialog')
sys.exit
# print(items)
f = open(items[inFilePrompt], 'r', encoding="utf-8")
# file contents
# 問 问
# ie. \w\s\w
# ie. word space word
script = open(items[outFilePrompt], 'w', encoding="utf-8")
script.write(u'#!/usr/local/bin/fontforge\n')
script.write(u'#\n#Generated from genFontForgeScript.py\n\n')
script.write(u'if ($argc ==2 )\n\tOpen($argv[1])\nendif\n')
# a = open('a.txt', 'w', encoding="utf-8")
for line in f:
words = line.encode("raw_unicode_escape").split()
# words = line.split()
# print(len(words))
if len(words) == 2:
if words[0] == words[1]:
pass
elif words[0].startswith(b'\u') and words[1].startswith(b'\u'):
###
# Select(0x570b)
# CopyReference()
# Select(0x56fd)
# Paste()
###
print(words[0].decode('unicode_escape') +
u' -> ' +
words[1].decode('unicode_escape'))
# a.write(u'\n' + words[0].decode('unicode_escape'))
# a.erite(u' ' + words[1].decode('unicode_escape'))
script.write(u'\n#' + words[0].decode('unicode_escape'))
script.write(u'\nSelect(0x' + words[0][2:].decode('utf-8') + u')')
script.write(u'\nCopyReference()')
script.write(u'\n#' + words[1].decode('unicode_escape'))
script.write(u'\nSelect(0x' + words[1][2:].decode('utf-8') + u')')
script.write(u'\nPaste()')
# a.write(u'\n')
# a.close()
script.write(u"\n\nGenerate('tmp.ttf')")
script.write(u'\n\n##### end of generator\n')
script.close()
print(u'Generated as fontforge.script')
禿
歿
倀
貿
祿
滿
綿
漿
調
輿
駿
鴿
餿
孿
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import collections
from io import open
import sys
# ignore warning
# import warnings
# warnings.filterwarnings("ignore")
# can use 3 or 2
from PyQt5.QtWidgets import (QDialog, QPushButton, QLineEdit, QLabel,
QApplication, QVBoxLayout)
from PyQt5.QtCore import Qt
class askSetting(QDialog):
def __init__(self,
app=None,
parent=None,
items=None):
super(askSetting, self).__init__(parent)
self.app = app
self.items = items
layout = QVBoxLayout()
self.lineedits = {}
for key in items.keys():
layout.addWidget(QLabel(key))
self.lineedits[key] = QLineEdit()
self.lineedits[key].setText(items[key])
# enable ime input
self.lineedits[key].inputMethodQuery(Qt.ImEnabled)
layout.addWidget(self.lineedits[key])
self.btn = QPushButton('OK', self)
self.btn.clicked.connect(lambda: (self.bye(items)))
self.btn.setFocusPolicy(Qt.StrongFocus)
layout.addWidget(self.btn)
self.setLayout(layout)
self.setWindowTitle(' Setting ')
def bye(self, items):
for key in self.lineedits.keys():
self.items[key] = self.lineedits[key].text()
self.close()
self.app.exit(1)
inFilePrompt = "File to read"
defaultInFile = "minifyTC"
outFilePrompt = "File to write"
defaultOutFile = "fontforge.script"
items = collections.OrderedDict()
items[inFilePrompt] = defaultInFile
items[outFilePrompt] = defaultOutFile
app = QApplication(sys.argv)
ask = askSetting(app=app, items=items)
ask.show()
rtnCode = app.exec_()
# If press OK button rtnCode should be 1
if rtnCode != 1:
print('User abort by closing Setting dialog')
sys.exit
# print(items)
f = open(items[inFilePrompt], 'r', encoding="utf-8")
# file contents
# 問
# 问
# ie. \w
## ie. word
script = open(items[outFilePrompt], 'w', encoding="utf-8")
script.write(u'#!/usr/local/bin/fontforge\n')
script.write(u'#\n#Generated from minizeFontFontForgeScript.py\n\n')
script.write(u'if ($argc ==2 )\n\tOpen($argv[1])\nendif\n')
script.write(u'SelectNone()\n')
for line in f:
words = line.encode("raw_unicode_escape").split()
# words = line.split()
# print(len(words))
if len(words) == 1:
if words[0].startswith(b'\u'):
###
# SelectNone()
# SelectMore(...)
# SelectInvert()
# Clear()
###
print(words[0].decode('unicode_escape'))
script.write(u'\n#' + words[0].decode('unicode_escape'))
script.write(
u'\nSelectMore(0x' + words[0][2:].decode('utf-8') + u')')
elif len(words[0]) == 1:
print(words[0].decode('unicode_escape'))
script.write(u'\n#' + words[0].decode('unicode_escape'))
script.write(u'\nSelectMore("' + words[0].decode('utf-8') + u'")')
script.write(u'''
#if you want distinct eps for each glyph uncomment following')
#Export("%n.eps")')
#BitmapsAvail([48])')
#Export("%n.48.png")')
SelectInvert()')
Clear()')
Generate('tmp.ttf')")
##### end of generator\n''')
script.close()
print(u'Generated as fontforge.script')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment