2013-08-21 25 views
2

我正在嘗試編寫一個Java程序,該程序可以爲給定名稱的字體找到TTF。例如,在Windows機器上輸入「Times New Roman」會返回路徑「C:\ Windows \ Fonts \ times.ttf」。從哪裏可以找到從字體字體名稱到文件名的地圖?

大多數其他字型的名字在他們的TTF文件的名稱縮寫以類似的方式。有什麼標準可以用來將字體名稱映射到相應的TTF文件名嗎?

回答

1

記住字體的名稱是該文件的內容中定義的,所以我們沒有理由應該與字體文件本身的名稱的任何關係。

在Windows XP中的註冊表項HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts列出了所有的永久性安裝的系統字體。您可以枚舉的字體文件這份名單中,打開每一個反過來,如果它是一個TTF你可以從它的head表得到checkSumAdjustment。構建項目列表,每個項目包含一對值 - 字體文件名和校驗和值。

然後,當您稍後意識到字體時,請撥打GetFontData並閱讀head表並找到該字體的checkSumAdjustment。然後在你之前做的列表中查看它。

+0

和windows7上? – n611x007

相關問題