RTF 表格之前的文本导致第一个表格单元格为空
Posted
技术标签:
【中文标题】RTF 表格之前的文本导致第一个表格单元格为空【英文标题】:Text before an RTF table causes first table cell to be empty 【发布时间】:2017-08-23 18:53:01 【问题描述】:在 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>
但是,如果我在表格前有文本,则第一个单元格始终为空。使用以下代码:
string message = @"\rtf1\ansi\deff0text\trowdc1\intbl\cellc2\intbl\cell\row";
我会在客户端得到这个结果:
Undesirable Result - First Cell Empty
如果我只是取出开头的文本,表格将按需要显示。代码:
string message = @"\rtf1\ansi\deff0\trowdc1\intbl\cellc2\intbl\cell\row";
客户端结果:
Desirable Table Format
我已经尝试了上述代码的许多变体。我花了很长时间通过互联网搜索这个。我也会承认我是 RTF 的新手。遗憾的是,Persistent Chat 仅支持 Lync SDK,后者仅支持纯文本或 RTF。
如果有人能提供见解或指导我在哪里寻找这种行为的解释,我将不胜感激。如果需要更多信息,请告诉我。谢谢。
【问题讨论】:
【参考方案1】:在写字板中查看您的示例 RTF 会显示相同的效果,因此它不是 Lync 特定的。从您的示例开始,我在写字板中编辑了文本以替换丢失的单元格并保存它,以便我可以看到 RTF 是如何变化的。主要区别似乎是在文本和表格之间插入了\par
。
试试这个:
string message = @"\rtf1\ansi\deff0text\par\trowdc1\intbl\cellc2\intbl\cell\row";
【讨论】:
以上是关于RTF 表格之前的文本导致第一个表格单元格为空的主要内容,如果未能解决你的问题,请参考以下文章
excel的单元格为空 日期型 插入到SQL数据库 为啥会出现默认时间1900-1-2
允许 s-s-rS 表格单元格溢出到下一个单元格(ala Excel)
java,poi读取excel单元格为空的数据,出现空指针异常:java.lang.NullPointerException