概述
愿你出走半生,归来仍是少年!
环境:.NET FrameWork4.5、ObjectArx 2016 64bit、Entity Framework 6.
目录
1.新增字体样式
2.大字体
3.获取字体样式
在CAD中,文本的样式表达依靠实体DBText和字体样式的协同。 很多时候在CAD打开外来的图纸都会发现文本的乱码或者是看不见文本的情况,这个大概率是因为字体样式的问题。本文主要面向文本样式的处理。关于TextStyleTable和TextStyleTableRecord的信息请详见官方文档。
1.新增字体样式
基于CAD内的字体以及自己图纸整饰需求,可添加指定的字体样式到图纸中,并应用于对应的实体中进行表达。
通过字体、宽度因子、粗体、斜体等等参数的设置,可增加指定的字体样式。
public static ObjectId AddTextStyle(this Document doc , string styleName, string fontName,double xScale=1.0, bool bold=false, bool italic=false, int charset=134, int pitchAndFamily=48)
{
try
{
Database db = doc.Database;//获取当前库
TextStyleTable st;
using (Transaction trans = db.TransactionManager.StartTransaction())//开启事务
{
//打开文字样式表
st = (TextStyleTable)db.TextStyleTableId.GetObject(OpenMode.ForRead);
//如果不存在名为styleName的文字样式,则新建一个文字样式
if (!st.Has(styleName))
{
//定义一个新的的文字样式表记录
TextStyleTableRecord str = new TextStyleTableRecord();
str.Name = styleName;//设置的文字样式名
str.XScale = xScale;
try
{
//设置文字样式的字体
str.Font = new FontDescriptor(fontName, bold, italic, charset, pitchAndFamily);
}
catch (System.Exception)
{
str.Font = new FontDescriptor("微软雅黑", bold, italic, charset, pitchAndFamily);
}
st.UpgradeOpen();
st.Add(str);
db.TransactionManager.AddNewlyCreatedDBObject(str, true);
st.DowngradeOpen();
}
trans.Commit();//提交事务
}
return st[styleName];
}
catch (Exception ex)
{
throw ex;
}
}
2.大字体
使用大字体的时候不需要去设置字体样式的Font属性,只需设置其字体文件地址和大字体文件地址即可。
3.获取字体样式
通过字体样式的名称获取到对象以进行后续的编辑或者信息读取。
最后
以上就是有魅力信封为你收集整理的8.字体样式(TextStyle)1.新增字体样式2.大字体3.获取字体样式的全部内容,希望文章能够帮你解决8.字体样式(TextStyle)1.新增字体样式2.大字体3.获取字体样式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复