我正在嘗試編寫一個Java程序,該程序可以爲給定名稱的字體找到TTF。例如,在Windows機器上輸入「Times New Roman」會返回路徑「C:\ Windows \ Fonts \ times.ttf」。從哪裏可以找到從字體字體名稱到文件名的地圖?
大多數其他字型的名字在他們的TTF文件的名稱縮寫以類似的方式。有什麼標準可以用來將字體名稱映射到相應的TTF文件名嗎?
我正在嘗試編寫一個Java程序,該程序可以爲給定名稱的字體找到TTF。例如,在Windows機器上輸入「Times New Roman」會返回路徑「C:\ Windows \ Fonts \ times.ttf」。從哪裏可以找到從字體字體名稱到文件名的地圖?
大多數其他字型的名字在他們的TTF文件的名稱縮寫以類似的方式。有什麼標準可以用來將字體名稱映射到相應的TTF文件名嗎?
記住字體的名稱是該文件的內容中定義的,所以我們沒有理由應該與字體文件本身的名稱的任何關係。
在Windows XP中的註冊表項HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
列出了所有的永久性安裝的系統字體。您可以枚舉的字體文件這份名單中,打開每一個反過來,如果它是一個TTF你可以從它的head
表得到checkSumAdjustment
。構建項目列表,每個項目包含一對值 - 字體文件名和校驗和值。
然後,當您稍後意識到字體時,請撥打GetFontData
並閱讀head
表並找到該字體的checkSumAdjustment
。然後在你之前做的列表中查看它。
和windows7上? – n611x007