Reputation:
I want to use a specific font in my winform app. This font will be auto installed in user personal computer from my application resource.
How can I do that?
I used some code which is from user personal computer. If I use this the font
must be remain previously in user personal computer but I don't want that.
System.Drawing.Text.PrivateFontCollection fontCollection = new System.Drawing.Text.PrivateFontCollection();
fontCollection.AddFontFile(@"C:\Windows\Fonts\SUTOM__.TTF");
FontFamily family = new FontFamily("SutonnyMJ", fontCollection);
Font font3of9 = new Font(family, 15);
label1.Font = font3of9;
Upvotes: 2
Views: 4277
Reputation: 404
1. Install Using Setup Project
You can install font from your setup project to do this you have to
File System > Right Click under the File System on Target Machine > Add Special Folder Fonts Folder
Then Select Fonts Folder and Add > File...
2. Install Font Programmatically
To achive this you have to do some external calls unfortunately.
[DllImport("gdi32.dll", EntryPoint="AddFontResourceW", SetLastError=true)]
public static extern int AddFontResource([In][MarshalAs(UnmanagedType.LPWStr)]
string lpFileName);
Then call it from anywhere you want
AddFontResource(@"C:\FontLocation\MyFont.TTF");
Upvotes: 8