我尝试转换RTF格式的纯文本.因此,我使用RichTextBox(WinForms).
有关方法将RTF-Markup作为字符串.
现在,我想在标记中插入行间距.我发现有2个参数:
- \slX (Space between lines in twips)
- \slmultX (either 0 or 1)
Run Code Online (Sandbox Code Playgroud)
如果我设置\slmult0,行间距高于文本行.
当我设置时\slmult1,行间距低于文本行.
我用以下方式计算间距:
(lineSpacing + fontSize)*20
Run Code Online (Sandbox Code Playgroud)
当我切换\slmult0到\slmult1,我确定,线距离小于\slmult0.
有人知道这种行为的原因吗?我需要用另一个公式计算吗?
如果我设置 \\slmult0,则行距位于文本行上方。\n当我设置 \\slmult1 时,行距位于文本行下方。
\n\n这不是我在规格中读到的内容。
\n\n按照我的理解,它的意思是\\slmult0说 的值\\slN直接用作某个单位的距离\\slmult1,而说Nin的意思\\slN是乘以常规行距的一个因子。
请参阅此处的最后一篇文章\n了解(一些)更多详细信息!(但还有一个注释是关于它太晚生效一行了..)
\n\nN另请注意中标志的重要性\\slN!(这就是我上面评论的原因:比如说 的效果\\sl234将取决于行中最高字符的大小..!)
这里对 RTF 的一些内容进行了很好的讨论;关于单位的注释:
\n\n\n\n\nRTF 的测量值通常以缇为单位。缇是二十分之一点,即 1440 英寸。有时这会导致一些大数字(例如 \\li2160,将左侧缩进设置为一英寸半)
\n
以及段落前后额外间距的明确定义:
\n\n\n\n\n\\sbN -- 本段之前的 N 缇额外(垂直)空间(默认值:0)
\n
\n \\saN -- 本段之后的 N 缇额外(垂直)空间(默认值:0)
以下是更直接的说明:
\n\n\n\n要使段落加倍行距,请将代码 \\sl480\\slmult1 放在\n \\pard之后。要将其三倍空格,请使用 \\sl720\\slmult1。若要仅\n 1.5 间距,请使用 \\sl360\\slmult1。单行距段落是默认设置,并且\xe2\x80\x99不需要任何特定代码。(幻数 480、720 和 360 don\xe2\x80\x99t 取决于段落中文本的磅值。)
\n