2017-08-23 56 views
0

在C#中,我正在手动创建RTF字符串。这些邮件稍后通过Microsoft Lync SDK作为持久聊天消息发送。对于Lync服务器在客户端中显示之前如何处理这些消息,我没有太多的控制权或洞察力。他们的黑匣子内可能发生了一些事情,但我正试图掩盖我所有的基地。RTF表之前的文本导致第一个表格单元格为空

我想创建一个表格,其中有一些文字。理想情况下,它可能是这个样子(我没有代表发布三张图片,所以我只是写它可能看起来像在HTML):

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

 
td { 
 
    padding: 15px; 
 
}
text 
 
<table> 
 
    <tr> 
 
    <td>c1</td> 
 
    <td>c2</td> 
 
    </tr> 
 
</table>

但是,如果我在表格之前有文本,第一个单元格总是空的。用下面的代码:

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

我已经尝试了上面的代码的许多变化。我有一段时间通过interwebs搜索这个。我也会承认我是全新的RTF。不幸的是,持久聊天只支持仅支持明文或RTF的Lync SDK。

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

回答

0

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

试试这个:

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

这解决了这个问题 - 谢谢你! – JOEMan90

相关问题