
為什麼要學這個?
可以知道某個字體檔定義了那些文字,進行知道缺字是否有缺字,及之後要先補那些字進去。
下面提供2個範例:
- 範例1: 取得 fontforge 專案下的文字清單.
- 範例2: 取得某一個目錄下, 以 unicode 為命名的文字清單.
前置作業
使用方式有2種:
- 用法1: fontforge + python. (比較簡單)
- 用法2, 需要先安裝FontForge,把要處理的字體先存成.sfdir 的資料夾格式, 執行時單純地執行 python。
FontForge執行檔下載:
https://fontforge.org/en-US/
Max腳本檔案下載:
https://github.com/max32002/MaxFontScripts/blob/master/get_ttf_chars.py
使用方法
在有 fontforget 指令模式: (建議使用)
fontforge get_ttf_chars.py --input font_forge.sfdir --output charset.txt
在無 fontforget 指令模式:
get_ttf_chars.py --input font_forge.sfdir --output charset.txt
參數說明:
--input
參數,Font Forge 的 .sfdir 資料夾路徑。.sfdir 可以省略, 程式會自動增加, 輪入必需是一個已存在的 font forget project 目錄.--output
參數,用於輸出的文字檔.--mode
參數,預設值是 “fontforge”, 針對 fontforge 的專案檔做處理, 使用參數 –mode=unicode_image 可以取得使用 unicode 編碼的數字的圖片.
操作範例1:取得字型檔案(.ttf)的文字清單. (建議使用)
fontforget get_ttf_chars.py --input source.sfdir
操作範例2:取得 fontforge 專案(.sfdir)下的文字清單.
get_ttf_chars.py --input source.sfdir
使用範例:由於沒有指定輸出的文字檔, 預設會產生 source.txt 文字檔,裡面記錄 source.sfdir 有定義的文字。
操作範例3:取得某一個目錄下, 以 unicode 為命名的文字清單.
get_ttf_chars.py --input sp --mode=unicode_image
執行結果:
input: sp
output: charset_sp.txt
charset length: 73
結果說明: 輸入資料夾名稱: sp, 輸出檔名 charset_sp.txt, 內容長度: 73個字.
指定 –mode, 不是很直覺, 請改用下面的 script:
字型與圖像字符集提取工具使用教學
這個小工具可以幫你從字型檔案(.otf、.ttf、.woff、.woff2、.sfdir)或是圖像資料夾中,提取出裡面包含的字符集,並輸出成一個文字檔。對於想要了解字型包含哪些字,或是從圖像建立字符集的人來說,非常方便!
使用前準備
- 安裝 Python:如果你的電腦還沒有安裝 Python,請先到 Python 官網 下載並安裝。
- 安裝 fontforge(如果需要處理字型檔案):如果你需要處理字型檔案,你需要安裝 fontforge 這個工具。安裝方式會根據你的作業系統有所不同,請參考 fontforge 官網 的說明。
- 安裝 LibGlyph(如果需要處理 .sfdir 檔案):如果你需要處理 .sfdir 檔案,你需要安裝 LibGlyph 這個函式庫。你可以使用 pip 來安裝:
pip install LibGlyph
- 準備字型檔案或圖像資料夾:把你想要處理的字型檔案或圖像資料夾放在一個方便存取的位置。
使用方式
- 下載腳本:把上面的 Python 腳本複製下來,儲存成一個 .py 檔案,例如
get_ttf_chars.py
。 - 開啟終端機或命令提示字元:在你的作業系統中開啟終端機(macOS/Linux)或命令提示字元(Windows)。
- 執行腳本:使用以下指令來執行腳本,並替換成你自己的檔案路徑和選項:
python get_ttf_chars.py --input [輸入檔案或資料夾路徑] --output [輸出文字檔路徑] --mode [模式]
--input
:指定輸入的字型檔案或圖像資料夾路徑。--output
:指定輸出的文字檔路徑,預設是output.txt
。--mode
:指定模式,有兩種模式可以選擇:fontforge
:處理字型檔案(.otf、.ttf、.woff、.woff2、.sfdir)。unicode_image
:處理圖像資料夾,圖像檔名必須是 Unicode 編碼的數字。
- 範例:
- 處理字型檔案:
python extract_charset.py --input myfont.ttf --output mycharset.txt --mode fontforge
- 處理圖像資料夾:
python extract_charset.py --input images --output image_charset.txt --mode unicode_image
- 處理字型檔案:
- 查看輸出結果:執行完成後,會在指定的路徑產生一個文字檔,裡面包含了提取出來的字符集。
注意事項
- 圖像資料夾中的圖像檔名必須是 Unicode 編碼的數字,例如
65
.png 代表字元 ‘A’。 - 如果處理字型檔案時遇到問題,請確認 fontforge 是否正確安裝。
接續應用
有了清單之後, 就是需要去清單做交集或刪除的過濾.