关于TX上下标新的建议,请管理员看看,反馈下。
TX用 TextControl1.InputFormat.Superscript = True和 TextControl1.InputFormat.Subscript = True
形成的rtf文件上下标在写字板中改变字号后,上下标字体特别大,
用记事本打开后,内容如下:(mm上标2F下标k)
{\*\generator TX_RTF32 17.0.540.500;}
\deftab1134\paperw12240\paperh15840\margl1440\margt1440\margr1440\margb1440\widowctrl\formshade\sectd
\headery720\footery720\pgwsxn12240\pghsxn15840\marglsxn1440\margtsxn1440\margrsxn1440\margbsxn1440\pgbrdropt32\pard\itap0\nowidctlpar\plain\f1\fs20 mm\plain\f1\fs20\up6 2\plain\f1\fs20 F\plain\f1\fs20\dn6 k\par }
用写字板生成的上下标如下:
{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\nowidctlpar\li300\cf1\lang1033\f0\fs20 mm\super 2\nosupersub F\sub k\nosupersub\i\par }
从上面可以看出rtf格式中:
TX用 \up6 和 \dn6表示上下标; 写字板用 \super\nosupersub 和 \sub \nosupersub 表示上下标,
请问在TX中能形成 \super\nosupersub 和 \sub \nosupersub 格式的上下标吗? 这个很难改变,TX内容的处理逻辑已经有很长的发展历史,厂商不会轻易修改。 我觉得用\super\sub 表示上下标是通行的做法,TX不应创造一种不通用的方法。
而且我觉得这个TX改过来应该很简单的。
同时TX应确保其生成的文件无论用什么软件打开都同样的美观漂亮。 我会将你的这一需求提交给厂商,同时,你能给我发送一个可以完全重现该问题的Demo吗,这样方便与厂商做更有效的沟通,非常感谢。 下面是用写字板和TX生成的上标对比。
用TX生成上标后在写字板里修改不同字号后的效果。
字号较小时还算协调,字号较大时极不协调。
mjhcad
问题我一清楚,方便讲以上结果的源文件发送给我吗。 谢谢dof的热心,其实代码很简单:以下是VB .net 代码
添加一个TextControl1控件和TextBox1控件:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
TextControl1.Selection.Text = "226.2mm"
TextControl1.InputFormat.Superscript = True ‘设置上标开始
TextControl1.Selection.Text = "2"
TextControl1.InputFormat.Superscript = False ‘设置上标结束
Dim s As String = ""
TextControl1.Selection.Save(s, TXTextControl.StringStreamType.RichTextFormat)’将带格式的文本保存到字符串s
TextBox1.Text = s ’显示带格式的文本
End Sub 这是上下标测试的Vb .net源程序
mjhcad
我已经将你的需求和厂商进行沟通,因为 TX X10 编码已经完成,该问题最快修复的时间也需要 TX X10 SP1 发布。 首先感谢Dof回答了好几个问题,很耐心。
我在编程中经常用到上下标。我提个建议,除了格式与Word和写字板兼容外,希望
TX自动处理上下标的字高,比如取当前字高的50%,而无需用TextControl1.InputFormat.FontSize
去特别指定 。现在的TX必须特别指定上下标的字高,如不特别指定将用当前字高来定义上下标。
也可以单独给定一个字高比例的属性如TextControl1.InputFormat.SuperscriptScale
来单独指定上标字高比例,不特别指定时与Word兼容,由程序内定比例。
TextControl1.InputFormat.Superscript = True‘上标开始
‘由程序自动处理字高为当前字高的50%或其它。
TextControl1.InputFormat.Superscript = False‘上标结束
以下是TX与Word的区别:
TX:
Word:
希望TX的下个版本能够改进上下标,同时也更好的兼容Word和写字板。
页:
[1]
2