【发布时间】:2015-01-28 16:23:08
【问题描述】:
所以我正在尝试从 word 文档中选择文本,其中包含斜体、粗体、具有特定字体系列的文本。
所以我找到了这段代码来选择所有文本:
//doc is the opened document with office automation, this part works
string text = doc.Content.Text;
int end = text.Length;
Microsoft.Office.Interop.Word.Range range = doc.Range(Start: 0, End: end);
range.Select();
然后我使用它,将文本复制到 Outlook 消息中:
Microsoft.Office.Interop.Outlook.Application outlook = new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.MailItem oMsg = (Microsoft.Office.Interop.Outlook.MailItem)outlook.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
oMsg.BodyFormat = Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatHTML;
oMsg.Body = range.Text ;
然后,当我查看消息 html 正文时,我只有 calibri 字体,没有粗体或斜体。
我想尝试的和我们手动做的一样:
打开word文档 选择所有文本然后复制 (ctrl + c) 在 Outlook 中创建邮件 将文本粘贴到邮件中(ctrl + v)。
这样完成后,再现性很好(字体系列,粗体等都很好),但是在代码中完成时,它只取文本。
查看这张图片的不同之处(下面的一个是编程制作的,一个底部是手动制作的):
我该如何解决这个问题(如果可能)?
编辑:在尤金的回答之后,我添加了这个:
Microsoft.Office.Interop.Outlook.Inspector insp = oMsg.GetInspector;
Microsoft.Office.Interop.Word.Document wordEditorDoc = insp.WordEditor;
但是,我不明白如何将文档文本放入我创建的单词编辑器对象中。我仍然可以发wordEditorDoc = doc;,但结果并不比以前好。
【问题讨论】:
标签: c# outlook office-interop