安装字体或直接调用非注册字体 z

1.安装字体
//程序直接将字体文件安装的系统中。
函数声明:
[DllImport("kernel32.dll", SetLastError = true)] 
static extern int WriteProfileString(string lpszSection, string lpszKeyName, string lpszString);

[DllImport("user32.dll")] 
public static extern int SendMessage(int hWnd, // handle to destination window 
uint Msg,  
int wParam,
int lParam
);

[DllImport("gdi32")] 
public static extern int AddFontResource(string lpFileName);

public static bool installFont(string FontFileName, string FontName) 

string WinFontDir = System.Environment.GetEnvironmentVariable("WINDIR") + "\\fonts"; 
//string FontFileName = "DS-Digital Bold Italic.TTF"; 
//string FontName = "DS-Digital Bold Italic"; 
int Ret; 
int Res; 
string FontPath; 
//const int WM_FONTCHANGE = 0x001D; 
//const int HWND_BROADCAST = 0xffff; 
FontPath = WinFontDir + "\\" + FontFileName; 
try 

if (!File.Exists(FontPath)) 

File.Copy(System.Windows.Forms.Application.StartupPath + "\\font\\" + FontFileName, FontPath); //font是程序目录下放字体的文件夹
Ret = AddFontResource(FontPath);

//Res = SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0); 
//WIN7下编译会出错,不清楚什么问题。注释就行了。  
Ret = WriteProfileString("fonts", FontName + "(TrueType)", FontFileName); 

}catch(Exception ex) 

MessageBox.Show("[ "+FontName + " ]字体安装失败!原因:"+ex.Message); 
return false; 

return true; 
}

函数的使用: 
fonts.installFont(字体文件, 字体名称)//fonts类名
fonts.installFont("C39P36DmTt.TTF", "C39P36DmTt")

2.调用字体文件
//程序直接调用字体文件,不用安装到系统字库中。
设置字体对象:
String ls_appPath = System.Windows.Forms.Application.StartupPath + "\\font\\";//font是程序目录下放字体的文件夹
String fontFile1 = ls_appPath + "C39P36DmTt.TTF";
String fontFile2 = ls_appPath + "GWGLYPTT.TTF";
......
pfc.AddFontFile(fontFile1);//字体文件的路径
pfc.AddFontFile(fontFile2);//字体文件的路径
........
Font myFont1 = new Font(pfc.Families[0], 41, FontStyle.Regular, GraphicsUnit.Point, 0);//myFont1就是你创建的字体对象
Font myFont2 = new Font(pfc.Families1], 31, FontStyle.Bold | FontStyle.Regular);

使用字体:
label1.Font = myFont1;

时间: 2024-08-01 15:56:08

安装字体或直接调用非注册字体 z的相关文章

【174】C#添加非默认字体

参考:C# WinForm程序安装字体或直接调用非注册字体 参考:百度知道 在Debug文件夹下面新建一个font的文件夹,然后将字体的文件复制到里面,使用的时候,直接调用字体文件! private void Form1_Load(object sender, EventArgs e) { String ls_appPath = System.Windows.Forms.Application.StartupPath + "\\font\\";//font是程序 String font

解决Office 2010安装报错1907,没有足够权限注册字体。

平台:Win10 LTSC 精简版 问题:安装Office2010x64时提示错误1907,没有足够权限注册字体. 解决过程: 上网查询了下,这个问题有4个可能.以前的off没卸载干净.权限不足,字体被精简了,或者注册表相关项被锁定. 1.以前的office没卸载干净,可以使用Microsoft Fixit 卸载,或者使用微软官方 (Office 2013/2010/2007/2003) 彻底卸载清理工具清理之前安装的版本的残留信息. 2.还原系统默认权限设置.打开开始菜单,找到“命令提示符”,

Office PPT保持提示无法保存Gill Sans 等非TrueType字体

升级office到最新版了 我有一天在做PPT,保存文件后提示保存:无法保存Gill Sans 等非TrueType字体 我知道PPT可以替换字体.于是使用替换字体功能,但是提示非TrueType不能替换.怎么办?? 找了很多办法无效,一直好多天都是每次保存提示这个对话框. 不过终于还是解决了.下面我来说一下是如何替换这些字体的. 对于一些提示无法保存的非TrueType字体,可以上网搜索对应的字体,下载安装后就不会出现这种字体保存提示了 对于Gill Sans这个字体处理有点麻烦,下载的字体好

自定义TextView 调用ttf格式字体

自定义TextView 调用ttf格式字体 <strong>将ttf格式文件存放在assets/fonts/下</strong> 注:PC系统字体存放在C:\Windows\Fonts下 import android.content.Context; import android.graphics.Typeface; import android.util.AttributeSet; import android.widget.TextView; /** * 修改字体 * */ p

IOS运行时动态注册字体

在IOS开发中,使用第三方字体,如ttf文件,otf文件,是很简单的.只需要两个步骤.1,讲 ttf文件,otf文件添加到工程根目录中.2,在info.plist中增加字体文件,是字体文件名.在使用时,双击打开字体文件,标题会显示字体名称,使用那个自体名称(setFontName)即可.在android中,是把字体文件拷贝到asset目录中,再使用typeface类根据文件得到其实例. 现在的问题是,在我们玩图的开发中,由于中文字体过大,需要从线上下载,下载到本地使用,这就涉及到一个注册字体问题

在VS2010上使用C#调用非托管C++生成的DLL文件(图文讲解)

背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件的时候,通过C#来开发应用软件时,就需要利用DllImport特性进行方法调用.本篇文章将引导你快速理解这个调用的过程. 步骤 1. 创建一个CSharpInvokeCPP的解决方案: 2. 创建一个C++的动态库项目: 3. 在应用程序设置中,选择“DLL”,其他按照默认选项: 最后点击完成,得到如图所示项目: 我们可以看到这里有一些文件,其中dllmain.cpp作为定义DLL应用程序的入口点,它的作用跟

在VS2017上使用C#调用非托管C++生成的DLL文件(图文讲解)

原文:在VS2010上使用C#调用非托管C++生成的DLL文件(图文讲解) 背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件的时候,通过C#来开发应用软件时,就需要利用DllImport特性进行方法调用.本篇文章将引导你快速理解这个调用的过程. 步骤 1. 创建一个CSharpInvokeCPP的解决方案: 2. 创建一个C++的动态库项目 CSharpInvokeCPP.CPPDemo: 3. 在Windows桌面项目中,选择“动态链接库DLL”,其他按

CSS3的自定义字体@font-face:将图片ICON转为字体

大家都知道现在各个浏览器都支持CSS3的自定义字体(@font-face),包括IE6都支持,只是各自对字体文件格式的支持不太一样.那么对于网站中用到的各种icon,我们就可以尝试使用font来实现,本文将详细讲解这种用法. 为什么要将icon做成字体? 在很多网站项目中,我们常常会用到各种透明小图标,然后网站要兼容各个浏览器,也可能会有多个尺寸,甚至还要考虑换肤等需求.那么我们就要将这些小图标输出为多种尺寸.颜色和文件格式,比如png8 alpha透明或者png8 index透明等. 比如,t

SQL安装过程中“针对SQL Server 注册表的一致性验证“出错解决方式

1.打开注册表,查找到[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\0804],分别打开Counter 和Help 2.打开Counter,把滚动条拉倒最后,然后记下最大的那个值(不同计算机不一样的),记下后关闭窗口 3.同样的打开Help,滚动到最后记最大的那个值(你们的值不一定跟我一样的哦!!!),记下后关闭窗口 4,再重新定位到Perflib的节点上, 5.双击Last Counter然后在