近日楼主在用CAD二次开发的过程中,遇到创建的多行文字(Mtext)字体(TextStyleId)设置为宋体但无效的问题,纠结了很长时间后明白问题出现在什么地方。由于楼主要创建的多行文字的内容是由Html转换来的,首先使用ConvertHtmlToRtf()方法将Html转换成Rtf,之后直接用Mtext的SetContentsRtf()方法获取Rtf内容,转换后的Rtf包含的字体不是楼主想用的字体,但是由于直接对Rtf处理实在繁琐,于是想到先把Rtf转换成文本,再赋值给Mtext,其中借助RichTextBox控件传递值,测试之后发现可行,在此与大家分享,过程如下:
//转换后的rtf,文本为你好,abc
string str= "{\\rtf1\\ansi\\ansicpg1252\\uc1\\htmautsp\\deff2{\\fonttbl{\\f0\\fcharset0 Times New Roman;}{\\f2\\fcharset134 \\'ce\\'a2\\'c8\\'ed\\'d1\\'c5\\'ba\\'da;}}{\\colortbl\\red0\\green0\\blue0;\\red255\\green255\\blue255;}\\loch\\hich\\dbch\\pard\\plain\\ltrpar\\itap0{\\lang1033\\fs18\\f2\\cf0 \\cf0\\ql{\\f2 {\\ltrch \\'c4\\'e3\\'ba\\'c3\\'a3\\'acabc,123;}\\li0\\ri0\\sa0\\sb0\\fi0\\ql\\par}\r\n}\r\n}";
Mtext mText = new Mtext(); //多