Lync 2013即时消息字体和颜色

时间:2015-03-11 10:33:05

标签: c# html css lync-2013 ucma

背景 - 我正在开发一个Lync应用程序,该应用程序在与特定用户进行对话时充当中间人。基本上,进入UserA的呼叫被转发到UserB,但呼叫者没有获得UserB的详细信息。从她的角度来看,她直接与UserA交谈。基本上,应用程序为UserA的每个来电管理两个呼叫:

  1. 从来电者到UserA
  2. 从UserA(通过模拟作为调用者)到UserB
  3. 接收每条消息并按原样转发给UserB。

    问题在某些情况下,我希望系统自动回复。到目前为止没问题,但我想为这些“系统”消息设置样式。在普通的Lync会话中聊天时,您可以选择字体,颜色和大小,以及更改文本的方向。

    现在,对于双方之间的定期公报,我只是简单地传递消息 - 即,UserA从呼叫者接收消息,系统将e.TextBody按原样发送给UserB({{1}是e)。我只是打电话:

    InstantMessageReceivedEventArgs

    现在,在这种情况下,格式化完全丢失。我没有发现instantMessagingFlow.BeginSendInstantMessage(Encoding.UTF8.GetBytes(e.TextBody), res => { try { instantMessagingFlow.EndSendInstantMessage(res); } catch(Exception ex) { //handle exception } }); 中传递任何样式数据的证据......

    我知道可以使用HTML设置IM的样式,以便发送消息成为:

    InstantMessageReceivedEventArgs

    这为我提供了所选颜色的文字,但是我在选择字体或设置文字对齐方面遇到了麻烦。无论我做什么,一些字体都显示在Times New Roman中(或者是Segoe UI?无论默认是什么......)。我使用instantMessagingFlow.BeginSendInstantMessage(new ContentType("text/html"), Encoding.UTF8.GetBytes("<div style='color: blue;'>" + e.TextBody + "</div>"), res => [...] 设置字体。在某些情况下,它会被忽略,但即使它有效,设置font-family: Arial;(大多数文本应该从右到左),或direction: rtl; 无效 ...

    我输错了命令吗?是否需要使用特定命令进行文本对齐,而不是text-align: right;

1 个答案:

答案 0 :(得分:0)

如果您尝试在OCS Web或Window客户端上发送消息,则需要使用X-MMS-IM-Format以不同方式对其进行格式化。对于Lync 2010 Client,您可以使用以下代码段:

string fontColor = "color: " + String.Format("{0:X2}{1:X2}{2:X2}", agentFontColor.R, agentFontColor.G, agentFontColor.B) + "; ";
            htmlMessage = "<html><body ><div style=\" font-family: " + agentFontName + "; " + agentFontBold + agentFontSize + fontColor + agentFontItalic + agentFontUnderline + " \">" + imText + "</div></body></html>";
  

agentFontBold应为:font-weight:bold;或font-weight:正常; - 按要求。   agentFontSize应该是:font-size:11px - 根据要求。   agentFontItalic应该是:font-style:italic;或font-style:正常; - 按要求。   agentFontUnderline应该是:text-decoration:underline;或&#34;&#34; - 按要求。