首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

.NET Micro Framework 中文顯示完整指南:從字體轉換到漢字渲染

     編輯:關於.NET

.NET Micro Framework (MF) 平台支援的字體採用專有的 .tinyfnt 格式,開發者必須透過 SDK 內建的 TFConvert.exe 工具,將 Windows 平台上的 TrueType 或 OpenType 字體轉換為裝置可用的格式。本文將詳細說明從建立字體定義檔、執行轉換命令、到在 Visual Studio 專案中測試顯示中文的完整流程,並針對常見的「字體名稱不符」錯誤提供解決方案。

一、建立字體定義檔 (.fntdef)

首先建立一個純文字檔,副檔名改為 .fntdef(例如 hwxk.fntdef)。檔案內容定義字體來源路徑、樣式參數與匯入字碼範圍。以華文行楷為例:

AddFontToProcess C:\Windows\Fonts\STXINGKA.TTF
SelectFont "WE:400,HE:20,FN:宋體"
ImportRange 32 126
ImportRange 19968 40869

關鍵指令說明

  • AddFontToProcess:指定字體來源檔案的絕對路徑,路徑含空格時需加雙引號。
  • SelectFont:從字體來源中選取特定樣式。常用參數包含 WE (字重 0-1000)、HE (高度 1-36)、FN (字體名稱)、WI (寬度 1-12)、IT (斜體)、UN (底線)。注意:MF 字體大小、粗細等屬性在編譯時即固定,執行期無法更改,不同尺寸需分別匯出。
  • ImportRange:指定匯入的 Unicode 字碼範圍。32-126 為基本拉丁字元,19968-40869 涵蓋常用漢字區(CJK Unified Ideographs)。

二、執行 TFConvert 轉換工具

  1. 開啟命令提示字元,切換至 SDK 的 Tools 目錄(通常位於 C:\Program Files\Microsoft .NET Micro Framework\v2.0.3036\Tools)。
  2. 建議建立一個工作目錄(如 C:\SampleFonts),將 TFConvert.exe、字體檔(STXINGKA.TTF)與 .fntdef 檔複製至此。
  3. 執行轉換命令:
TFConvert C:\SampleFonts\hwxk.fntdef C:\SampleFonts\hwxk.tinyfnt

成功後目錄下會產生 hwxk.tinyfnt 檔案。

三、Visual Studio 專案測試

  1. 新建 Windows Application 專案。
  2. 雙擊 Resources.resx,將 String1 內容改為欲顯示的中文字串。
  3. 點選資源頁面左上角「String」旁的下拉箭頭,選擇「Files」,再點擊「Add Existing File」加入剛產生的 .tinyfnt 檔。
  4. 修改 Program.cs 中的字體引用:
// 原始碼
text.Font = Resources.GetFont(Resources.FontResources.small);
// 修改為
text.Font = Resources.GetFont(Resources.FontResources.hwxk);

重新編譯並執行模擬器,即可看到中文正常顯示。

四、解決「Font cannot be found」錯誤與擴展字體支援

若在 SelectFont 中指定的 FN (FaceName) 不是「宋體」,TFConvert 會報錯。原因在於 MF 僅支援以中文「宋體」為 FaceName 的字體轉換,其他中文字體(微軟雅黑、華文細黑、幼圓等)需先修改字體內部的 Name Table 為英文名稱。

使用 FontCreator 修改字體名稱步驟

  1. 用 FontCreator 開啟目標字體(如 MSYH.TTF 微軟雅黑)。
  2. 選單 Format → Naming,在 Platform 選 Microsoft Unicode BMP only,Language 選 Chinese-PRC,記下「Font Family Name」、「Unique Font Identifier」、「Full Font Name」三欄的內容(通常為亂碼)。
  3. 將 Language 改為 English-United States,複製這三欄的英文內容(如 Microsoft YaHei)。
  4. 切回 Chinese-PRC,將三欄內容貼上為英文名稱,按 OK 並儲存字體。
  5. 修改 .fntdef 檔:
AddFontToProcess C:\SampleFonts\MSYH.ttf
SelectFont "WE:400,FN:Microsoft YaHei"
ImportRange 32 126
ImportRange 19968 40869

重新執行 TFConvert 即可成功產生 .tinyfnt。同理,若將名稱改為「宋體」也能通過轉換,但建議使用英文名稱以避免潛在相容性問題。

五、總結

.NET Micro Framework 的中文顯示雖需經過字體轉換流程,但掌握 .fntdef 設定、TFConvert 操作與字體 Name Table 修改技巧後,即可在嵌入式裝置上流暢渲染各種中文字體,滿足產品在地化需求。

SDK Tools 目錄截圖

Visual Studio 資源加入截圖

模擬器中文顯示效果

FontCreator Naming 設定 (中文)

FontCreator Naming 設定 (英文)

FontCreator 修改後畫面

轉換錯誤訊息截圖

處理後華文行楷顯示效果

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved