Skip to content

Latest commit

 

History

History
88 lines (73 loc) · 4.33 KB

README.zh_TW.md

File metadata and controls

88 lines (73 loc) · 4.33 KB

FontMod

English 简体中文 繁体中文

修改 Win32 程式字型的簡單的 hook 工具。可用於一些基於 GDI/GDI+ 或者 Qt 的程式。

經測試可用於 Telegram DesktopKleopatra (Gpg4Win)Mendeley Desktop

使用方法

下載 FontMod{32,64,ARM,ARM64}.dll 並更名為下列之一: dinput8.dll, dinput.dll, dsound.dll, d3d9.dll, d3d11.dll, ddraw.dll, winmm.dll, version.dll, d3d8.dll (d3d8.dll 僅支援 32 位元)。
然後放在程式 exe 所在的檔案夾裏。
使用者字型: 把字型檔案放在 fonts 檔案夾內,可以直接使用,無需安裝到系統中。

組態檔案

初次運行時會建立 FontMod.yaml。組態檔案使用 UTF-8 編碼。支援 UTF-8 BOM。

style: &style
# Remove '#' to override font style
#  size: 0
#  width: 0
#  weight: 0
#  italic: false
#  underLine: false
#  strikeOut: false
#  charSet: 0
#  outPrecision: 0
#  clipPrecision: 0
#  quality: 0
#  pitchAndFamily: 0

fonts:
  SimSun: &zh-cn-font # Chinese (Simplified) fallback font
    replace: Microsoft YaHei
    <<: *style
  PMingLiU: # Chinese (Traditional) fallback font
    replace: Microsoft JhengHei UI
    <<: *style
  MS UI Gothic: # Japanese fallback font
    replace: Yu Gothic UI
    <<: *style
  Gulim: # Korean fallback font
    replace: 맑은 고딕
    <<: *style

#fixGSOFont: true # true is to use system UI font
#fixGSOFont: *zh-cn-font # Or replace with user defined font

#gdiplus:
#  SimSun:
#    replace: Microsoft YaHei
#  Microsoft YaHei:
#    size: 72.0
#    style: regular
##    style: 0
#    unit: point
##    unit: 3

#gdipGFFSansSerif: Calibri
#gdipGFFSerif: Times New Roman
#gdipGFFMonospace: Consolas

debug: false
  • fonts

    • key ("SimSun"): 要修改的字型名稱。
    • replace / name: 要替換成的字型名稱。
    • size width weight italic underLine strikeOut charSet outPrecision clipPrecision quality pitchAndFamily: 覆蓋原始字型樣式。請參見 MSDN 文檔。如果不想覆蓋的話請把這些項刪除。
  • fixGSOFont 替換 GetStockObject 字型,選項與前面的 fonts 相同。若設為 true 則會使用 SystemParametersInfo 獲取系統字型。

  • gdiplus 替換 GDI+ 字型. 由於 GDI+ 的限制, 你只可以把壹個字型替換成另壹個 (SimSun -> Microsoft YaHei),或者修改某個字型的樣式。

    • key ("SimSun"): 要修改的字型名稱。
    • replace / name: 要替換成的字型名稱。
    • size: 字型大小。
    • style: 字型樣式。允許的值為: regular bold italic boldItalic underline strikeout。或者你可以直接寫 FontStyle enumeration 對應的整數值。
    • unit: 大小的單位。允許的值為: world display pixel point inch document millimeter. 或者你可以直接寫 Unit enumeration 對應的整數值。
  • gdipGFFSansSerif, gdipGFFSerif, gdipGFFMonospace 替換 GDI+ generic font family. (https://docs.microsoft.com/en-us/windows/win32/gdiplus/-gdiplus-fontfamily-flat)

  • debug 除錯模式 (會記錄相關訊息到 FontMod.log)。

YAML 支援 錨點(&)參照(*) (請參見 維基百科),此工具還支援 YAML 標準中非強制的鍵值合併 (Merge Key) 功能。你可以像上面的組態檔案那樣重復使用數據,而不需要像 JSON 那樣把數據複製多份。

如果只想替換 CJK 字型,保留英文字型不變,你需要將 "key" 設為 CJK 的 fallback 字型。這個字型在不同語言環境下可能不一樣 (比如簡體中文是 SimSun),你可以使用 debug 模式找到對應的字型。