2017-08-23 35 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

相關問題