RTF表之前的文本导致第一个表格单元格为空

时间:2017-08-23 18:53:02

标签: c# rtf lync

在C#中我手动创建RTF字符串。它们稍后通过Microsoft Lync SDK作为持久聊天消息发送。在对客户端进行显示之前,我无法对Lync服务器如何处理这些消息进行大量控制或深入了解。可能在他们的黑匣子里发生了一些事情,但我试图掩盖我所有的基础。

我正在尝试创建一个在其前面有一些文本的表。理想情况下,它可能看起来像这样(我不会让代表发布三个图像所以我只是写了它在HTML中的样子):



table, td {
  border: 1px solid black;
}

td {
  padding: 15px;
}

text
<table>
  <tr>
    <td>c1</td>
    <td>c2</td>
  </tr>
</table>
&#13;
&#13;
&#13;

但是,如果我在表格之前有文本,则第一个单元格始终为空。使用以下代码:

string message = @"{\rtf1\ansi\deff0{text}\trowd{c1}\intbl\cell{c2}\intbl\cell\row}";

我会在客户端获得此结果:

Undesirable Result - First Cell Empty

如果我只是在开头取出文本,表格将根据需要显示。代码:

string message = @"{\rtf1\ansi\deff0\trowd{c1}\intbl\cell{c2}\intbl\cell\row}";

客户结果:

Desirable Table Format

我尝试了上述代码的许多变体。我有一段时间通过互联网搜索这个问题。我也承认我是RTF的新手。不幸的是,Persistent Chat仅支持仅支持纯文本或RTF的Lync SDK。

如果有人能提供见解或指示我在哪里寻找这种行为的解释,我将不胜感激。如果需要更多信息,请告诉我。谢谢。

1 个答案:

答案 0 :(得分:0)

在写字板中查看示例RTF会显示相同的效果,因此它不是特定于Lync的。从您的示例开始,我在写字板中编辑了文本以替换丢失的单元格并保存它,以便我可以看到RTF如何更改。主要区别似乎是在文本和表格之间插入\par

试试这个:

string message = @"{\rtf1\ansi\deff0{text}\par\trowd{c1}\intbl\cell{c2}\intbl\cell\row}";