首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获得带有办公自动化的完整.docx文本,包括字体和属性(粗体、斜体.)

获得带有办公自动化的完整.docx文本,包括字体和属性(粗体、斜体.)
EN

Stack Overflow用户
提问于 2015-01-27 16:09:58
回答 1查看 554关注 0票数 1

所以我试着从一个word文档中选择文本,其中包含文本的斜体,粗体,有特定的字体系列。

因此,我找到了选择所有文本的代码:

代码语言:javascript
复制
//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消息中:

代码语言:javascript
复制
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正文时,我只使用杯状字体,没有粗体或斜体。

我想尝试的是,当我们手动做它的时候,我们得到了同样的东西:

打开word文档,选择所有文本,然后复制(ctrl + c),在outlook中创建一个邮件,粘贴邮件中的文本(ctrl + v)。

当它这样做,它是很好的再现(字体系列,粗体等是很好的),但当它是在代码中,它只接受文本。

请参阅这张图中的不同之处(下面的一个是以编程方式制作的,一个底部是手动的):

我如何解决这个问题(如果可能的话)?

编辑:在Eugene的回答之后,我添加如下:

代码语言:javascript
复制
                Microsoft.Office.Interop.Outlook.Inspector insp = oMsg.GetInspector;
                Microsoft.Office.Interop.Word.Document wordEditorDoc = insp.WordEditor;

但是,我不知道如何将文档文本放入我创建的word Editor对象中。我仍然可以做一个wordEditorDoc = doc;,但结果并不比以前好。

EN

回答 1

Stack Overflow用户

发布于 2015-01-27 17:39:39

Body属性包含一个原始文本。一种可能的方法是使用HTMLBody或Word编辑器。我认为最方便的方法是使用Word对象模型在文档(现有文档和消息体)之间复制内容。正如您可能知道的,Outlook在Outlook中使用Word作为电子邮件编辑器。因此,您可以使用Word对象模型来格式化Outlook中的电子邮件。

检查器类的WordEditor属性返回文档类的一个实例(来自Word对象模型),该实例表示消息体。

您可以在MSDN中的第17章:与项目机构合作文章中阅读更多关于可能方法的信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28174886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档