8.字体样式(TextStyle)

愿你出走半生,归来仍是少年! 

环境:.NET FrameWork4.5、ObjectArx 2016 64bit、Entity Framework 6. 

 

目录

1.新增字体样式

2.大字体

3.获取字体样式


        在CAD中,文本的样式表达依靠实体DBText和字体样式的协同。 很多时候在CAD打开外来的图纸都会发现文本的乱码或者是看不见文本的情况,这个大概率是因为字体样式的问题。本文主要面向文本样式的处理。关于TextStyleTableTextStyleTableRecord的信息请详见官方文档。

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.获取字体样式

        通过字体样式的名称获取到对象以进行后续的编辑或者信息读取。

字体获取

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

就是那个帕吉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值