取得字體的包含文字

為什麼要學這個?

可以知道某個字體檔定義了那些文字,進行知道缺字是否有缺字,及之後要先補那些字進去。

下面提供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)或是圖像資料夾中,提取出裡面包含的字符集,並輸出成一個文字檔。對於想要了解字型包含哪些字,或是從圖像建立字符集的人來說,非常方便!

使用前準備

  1. 安裝 Python:如果你的電腦還沒有安裝 Python,請先到 Python 官網 下載並安裝。
  2. 安裝 fontforge(如果需要處理字型檔案):如果你需要處理字型檔案,你需要安裝 fontforge 這個工具。安裝方式會根據你的作業系統有所不同,請參考 fontforge 官網 的說明。
  3. 安裝 LibGlyph(如果需要處理 .sfdir 檔案):如果你需要處理 .sfdir 檔案,你需要安裝 LibGlyph 這個函式庫。你可以使用 pip 來安裝: pip install LibGlyph
  4. 準備字型檔案或圖像資料夾:把你想要處理的字型檔案或圖像資料夾放在一個方便存取的位置。

使用方式

  1. 下載腳本:把上面的 Python 腳本複製下來,儲存成一個 .py 檔案,例如 get_ttf_chars.py
  2. 開啟終端機或命令提示字元:在你的作業系統中開啟終端機(macOS/Linux)或命令提示字元(Windows)。
  3. 執行腳本:使用以下指令來執行腳本,並替換成你自己的檔案路徑和選項:
    python get_ttf_chars.py --input [輸入檔案或資料夾路徑] --output [輸出文字檔路徑] --mode [模式]
    • --input:指定輸入的字型檔案或圖像資料夾路徑。
    • --output:指定輸出的文字檔路徑,預設是 output.txt
    • --mode:指定模式,有兩種模式可以選擇:
      • fontforge:處理字型檔案(.otf、.ttf、.woff、.woff2、.sfdir)。
      • unicode_image:處理圖像資料夾,圖像檔名必須是 Unicode 編碼的數字。
  4. 範例:
    • 處理字型檔案:
      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
  5. 查看輸出結果:執行完成後,會在指定的路徑產生一個文字檔,裡面包含了提取出來的字符集。

注意事項

  • 圖像資料夾中的圖像檔名必須是 Unicode 編碼的數字,例如 65.png 代表字元 ‘A’。
  • 如果處理字型檔案時遇到問題,請確認 fontforge 是否正確安裝。

接續應用

有了清單之後, 就是需要去清單做交集或刪除的過濾.


相關文章: