富文本格式行间距
本文关键字:格式 文本 | 更新日期: 2023-09-27 18:03:55
我尝试将纯文本转换为rtf格式。因此,我使用RichTextBox (WinForms)。
相关方法将RTF-Markup作为字符串。
现在,我想在标记中插入行间距。我发现有两个参数:
- 'slX (Space between lines in twips)
- 'slmultX (either 0 or 1)
如果我设置'slmult0
,行距在文本行之上。
当我设置'slmult1
时,行距在文本行下面。
我用下面的方法计算空格:
(lineSpacing + fontSize)*20
当我从'slmult0
切换到'slmult1
时,我确定,线距比'slmult0
小一点。
有人知道这种行为的原因吗?我需要用另一个公式来计算吗?
如果我设置'slmult0,行间距在文本行之上。当我设置'slmult1时,行间距在文本行以下。
这不是我在说明书中看到的。
我理解它的方式,这意味着'slmult0
说'slN
的值在某些单位中直接用作距离,而'slmult1
说'slN
中的N
意味着作为因子,通过它乘以常规行间距。
在这里查看最后一篇文章了解更多细节!(但也有一个关于延迟一行生效的说明…)
还要注意'slN
中N
符号的重要性!(这就是我上面评论的原因:比如'sl234
的效果将取决于行中最高的字符的大小…!)
这里有一些关于RTF的很好的讨论;关于单位的说明:
RTF中的测量通常都是用twps表示的。twtip是A的二十分之一点,即一英寸的1440分之一。这导致了一些大的数字有时(如'li2160,将左缩进设置为1.5英寸)
和段落前后额外间距的明确定义:
'sbN——N段落前的额外(垂直)空格(默认值:0)
下面是更直接的说明:
在之后,将代码'sl480'slmult1放在的右边'豹。使用'sl720'slmult1对其进行三倍空格。只是为了1.5-spacing,使用'sl360'slmult1。默认为单行距段落,不需要任何特定代码。(神奇的数字480,720和360不依赖于文本的点大小段落。)