在windows系統中,原有自帶的字型樣式有限,有時候我們的程式會使用到個別稀有或系統不自帶的字型。因此我們需要將字型打包到程式中,當程式啟動時,檢測系統是否有該字型,如果沒有則安裝該字型,也可以動態載入字型。
1.1、使用**安裝字型
注意:安裝字型時,需要windows的管理員許可權。
[
dllimport
("kernel32.dll"
, setlasterror =
true)]
public
static
extern
intwriteprofilestring
(string lpszsection,
string lpszkeyname,
string lpszstring);[
dllimport
("gdi32")]
public
static
extern
intaddfontresource
(string lpfilename)
;///
/// 安裝字型
///
/// 字型檔案全路徑
/// 是否成功安裝字型
/// 不是管理員執行程式
/// 字型安裝失敗
public
static
bool
installfont
(string fontfilepath)
//獲取windows字型資料夾路徑
string fontpath=path.
combine
(system.environment.
getenvironmentvariable
("windir"),
"fonts"
,path.
getfilename
(fontfilepath));
//檢測系統是否已安裝該字型if(
!file.
exists
(fontpath))}
catch
(exception ex)
] 字型安裝失敗!原因:"))
;}return
true
;}
1.2、從專案資源檔案中載入字型
該方法需要開發者將字型檔案以資源的形式放入專案資源檔案中。不用安裝到字型庫中,其他程式如果需要使用,就需要自己安裝或者載入。此時可以使用以下**建立程式所需字型:
///
/// 如何使用資源檔案中的字型,無安裝無釋放
///
/// 資源檔案中的字型檔案
///
public
font
getresorucefont
(byte
bytes)
1.3、載入某個字型檔案,載入字型
設定好某個字型的路徑,然後載入字型檔案,從而建立字型。不用安裝到字型庫中,其他程式如果需要使用,就需要自己安裝或者載入。
///
/// 通過檔案獲取字型
///
/// 檔案全路徑
/// 字型
public
font
getfontbyfile
(string filepath)
1.4、檢測系統中是否包含某種字型
對於檢測是否已經安裝了某種字型的方法有很多,這裡只介紹檢測是否有該檔案的方式:
///
/// 檢查字型是否存在
///
/// 字型名稱
///
public
static
bool
checkfont
(string familyname)
1.5、檢測某種字型樣式是否可用
///
/// 檢測某種字型樣式是否可用
///
/// 字型名稱
/// 字型樣式
///
public
bool
checkfont
(string familyname,
fontstyle fontstyle= fontstyle.regular )
}return
false
;}
程式安裝字型或直接呼叫非註冊字型 c
1.安裝字型 程式直接將字型檔案安裝的系統中。函式宣告 ret addfontresource fontpath res sendmessage hwnd broadcast,wm fontchange,0,0 win7下編譯會出錯,不清楚什麼問題。注釋就行了。ret writeprofilestr...
字型怎麼安裝到vivo PS字型怎麼安裝?
字型安裝方法 2.然後進入字型安裝介面,貼上進去即可 字型安裝介面一般是在以下這幾個目錄 c windowsfonts 或c winntfonts 或開始選單 控制面板 字型.字型常見疑問 1.為什麼在安裝時會出現 檔案損壞 這個是因為字型檔與你的系統產生衝突 特別是xp系統,因為有很多字型以前都是...
fedora(linux) 安裝字型
我的是雙系統,windows的c盤掛載在 mnt c 以安裝以下4種字型為例 simfang.ttf 仿宋體 simhei.ttf 黑體 simkai.ttf 楷體 simsun.ttf 宋體和新宋體,原檔名simsun.ttc cd mnt c windows fonts cp sim ttf u...