黄玉宏 发表于 2009-6-1 23:58:00

如何加粗中文多行文字?

本帖最后由 作者 于 2009-6-2 8:31:07 编辑 <br /><br /> <p>'以下创建文字样式<br/>Select Case Combo1.text<br/>Case "宋体"<br/>Set mytxt = AcadDoc.TextStyles.Add("宋体")<br/>mytxt.SetFont "宋体", False, False, 0, 0<br/>Case "仿宋"<br/>Set mytxt = AcadDoc.TextStyles.Add("仿宋")<br/>mytxt.fontFile = "c:\windows\fonts\simfang.ttf"<br/>Case "楷体"<br/>Set mytxt = AcadDoc.TextStyles.Add("楷体")<br/>mytxt.fontFile = "c:\windows\fonts\simkai.ttf"<br/>Case "黑体"<br/>Set mytxt = AcadDoc.TextStyles.Add("黑体")<br/>mytxt.fontFile = "c:\windows\fonts\simhei.ttf"<br/>Case "英文"<br/>Set mytxt = AcadDoc.TextStyles.Add("英文")&nbsp;&nbsp; 'Times New Roman字体<br/>mytxt.fontFile = "c:\windows\fonts\TIMES.TTF"<br/>End Select<br/>AcadDoc.ActiveTextStyle = mytxt</p><p>如上内容:</p><p>1、宋体可以用SetFont方法并加粗,但是仿宋就不行?请帮助解决“仿宋”用SetFont方法处理并加粗!</p><p>2、多行文字能否不通过文字样式直接修改其为加粗?在CAD2006模型空间直接写多行文字时其文字编辑器中能直接修改如:加粗、倾斜、宽度比例等。</p><p>2、单行文字能否加粗?</p><p>谢谢各位!</p><p>黄玉宏&nbsp;&nbsp; 二○○九年六月一日<br/></p>

ddx_2002 发表于 2009-6-3 14:16:00

<p>'采用如下代码来生成文字并控制文字外观</p><p>Sub 宏1()<br/>&nbsp;&nbsp;&nbsp; '计算机:DX&nbsp; 作者:Administrator<br/>&nbsp;&nbsp;&nbsp; '2009年6月3日 14时06分07秒<br/>&nbsp;&nbsp;&nbsp; '</p><p>'&lt;AcDbMText,1B3&gt;<br/>&nbsp;&nbsp;&nbsp; Dim MTextObj As AcadMText<br/>&nbsp;&nbsp;&nbsp; Dim Corner(0 To 2) As Double<br/>&nbsp;&nbsp;&nbsp; Dim Width As Double<br/>&nbsp;&nbsp;&nbsp; Dim Text As String<br/>&nbsp;&nbsp;&nbsp; '定义多行文字的参数<br/>&nbsp;&nbsp;&nbsp; Corner(0) = 1191.18495933909: Corner(1) = 1312.41921826727: Corner(2) = 0<br/>&nbsp;&nbsp;&nbsp; Width = 107.34082610751<br/>&nbsp;&nbsp;&nbsp; Text = "{\fFangSong_GB2312|b1|i0|c134|p49;\L\O仿宋体}"&nbsp;&nbsp;&nbsp; '\f后便跟的是你要采用的字体名称|b1表示加粗,b0表示不加粗|i1表示斜体,i0表示不斜|;\L\O表示下划线和上划线,去掉则没有<br/>&nbsp;&nbsp;&nbsp; Set MTextObj = ThisDrawing.ModelSpace.AddMText(Corner, Width, Text)<br/>&nbsp;&nbsp;&nbsp; MTextObj.Rotation = 0<br/>&nbsp;&nbsp;&nbsp; MTextObj.Height = 2.5<br/>&nbsp;&nbsp;&nbsp; MTextObj.AttachmentPoint = acAttachmentPointTopLeft<br/>&nbsp;&nbsp;&nbsp; MTextObj.InsertionPoint = Corner<br/>&nbsp;&nbsp;&nbsp; Set MTextObj = Nothing<br/>End Sub</p><p>'请测试</p>

黄玉宏 发表于 2009-6-3 17:41:00

谢谢帮助

<p>不用测试肯定成功,这是用董兴的CAD宏录制器录制的代码(在此先感谢董工!),关键是里面的:|c134|p49;代表什么意思?好像没什么用!</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我在编制“单行或多行弧形文字”程序时遇到这个问题,需要对多行文字加粗!想使用多行文字属性解决,找不到。单行文字能否加粗?如能怎样加粗?</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 非常感谢!我的QQ:653194278</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 黄玉宏&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 二○○九年六月三日</p>

ddx_2002 发表于 2009-6-4 22:32:00

<font face="Times New Roman" size="2">(b|i|c|p分别表示:粗\斜\字符集\</font>字体间距<font face="Times New Roman" size="2">),建议你还是用多行文字吧,能控制的东西多点,单行文字难加粗啊,<a href="http://www.mjtd.com/a2/list.asp?id=105">http://www.mjtd.com/a2/list.asp?id=105</a>这里有较详细的介绍,如果你要是编写<font size="3">“单行或多行弧形文字”程序建议你在碰到单行文字时提取其内容再把它换成多行文字重新输出然后再控制格式比较好,个人建议。</font></font>
页: [1]
查看完整版本: 如何加粗中文多行文字?