有几种不同的方法可以在RTF中创建水平线。根据使用的控件或程序,您的效果可能会有所不同。控件和程序中的RTF实现往往会简单地忽略它们无法处理的标记。请注意,下面的代码示例是片段,不是完整的RTF文档。它们需要嵌入到有效的RTF文档中才能正常工作。
通过绘制多边形:
{\pard{\*\do
\dobxcolumn \dobypara \dodhgt7200
\dpline \dpptx0 \dppty0 \dpptx7200
\dppty0 \dpx0 \dpy0 \dpxsize7200
\dpysize0 \dplinew15
\dplinecor0 \dplinecog0 \dplinecob0 }\par}
通过插入一个带边框的空段落,然后再插入另一个没有边框的空段落:
{\pard \brdrb \brdrs \brdrw10 \brsp20 \par}
{\pard\par}
你可以通过设置段落的缩进来改变线条的大小和位置:
{\pard \li2268 \ri567
\brdrb \brdrs \brdrw10 \brsp20 \par}
{\pard\par}
我强烈推荐O'Reilly的RTF口袋指南,这本书是我获取以下信息的来源。
进一步地实验产生了下面的代码,可以在WordPad和RichTextBox控件中使用。
{\pict\wmetafile8\picw26\pich26\picwgoal20000\pichgoal15
0100090000035000000000002700000000000400000003010800050000000b0200000000050000
000c0202000200030000001e000400000007010400040000000701040027000000410b2000cc00
010001000000000001000100000000002800000001000000010000000100010000000000000000
000000000000000000000000000000000000000000ffffff00000000ff040000002701ffff0300
00000000
}
基本上,它涉及插入一个黑点的1x1像素图像,并通过调整高度和宽度目标来根据需要拉伸它。目标测量单位为twips。Twip被定义为英寸的1/1440。这是一个可怕的技巧,但它起作用。
这里有一个示例,将最后的代码片段放入完整的有效RTF文档中,在WordPad和Windows Forms的RichTextBox控件上正确显示:
{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033{\fonttbl{\f0\fnil\fcharset0 Calibri;}}
{\*\generator Riched20 10.0.19041}\viewkind4\uc1
\pard\sa200\sl276\slmult1\f0\fs22\lang9 Above\par
{\pict\wmetafile8\picw26\pich26\picwgoal20000\pichgoal15
0100090000035000000000002700000000000400000003010800050000000b0200000000050000
000c0202000200030000001e000400000007010400040000000701040027000000410b2000cc00
010001000000000001000100000000002800000001000000010000000100010000000000000000
000000000000000000000000000000000000000000ffffff00000000ff040000002701ffff0300
00000000
}
\par
Below\par
}