Скопируйте формат Word в сообщение Outlook - PullRequest
1 голос
/ 07 января 2011

У меня есть автоматизация внешнего вида. Я хотел бы использовать документ Word в качестве шаблона для содержимого сообщения. Допустим, у меня есть какой-то форматированный текст, содержащий таблицы, цвета, размеры и т. Д. Теперь я хотел бы скопировать / вставить этот контент в объект сообщения Outlook.

Вот пример кода (без очистки):

String path = @"file.docx";
String savePath = @"file.msg";
Word.Application wordApp = new Word.Application();
Word.Document currentDoc = wordApp.Documents.Open(path);
Word.Range range = currentDoc.Range(0, m_CurrentDoc.Characters.Count);
String wordText = range.Text;

oApp = new Outlook.Application();
Outlook.NameSpace ns = oApp.GetNamespace("MAPI");
ns.Logon("MailBox");
Outlook._MailItem oMsg = oApp.CreateItem(Outlook.OlItemType.olMailItem);
oMsg.To = "mymail@someserver.com";
oMsg.Body = wordtext;
oMsg.SaveAs(savePath);

При использовании Outlook / Word 2007, однако файлы слов все еще могут быть в формате 2000/2003 (.doc).
Visual Studio 2010 с .net 4.0 (должно быть очевидно из-за примера кода).

Я привык взаимодействовать, и я знаю, что в настоящее время я просто копирую «простой текст». Я думаю, что это должно быть сделано путем получения RTF / HTML из слова документа ...

Есть предложения?

Ответы [ 2 ]

1 голос
/ 07 января 2011

Строка, в которую вы читаете содержимое, не сможет поддерживать формат. Вам нужно будет скопировать выделение альтернативными способами, чтобы сохранить форматирование.

Один из методов, который вы можете использовать, - это сохранить документ в формате html, который добавит дополнительное html-слово, которое имеет тенденцию к добавлению, прочитать html-содержимое в строку, то есть эта строка будет иметь сгенерированные теги, а затем создать outlook mailItem и установите формат тела в html. - и установите тело в HTML, сохраняющее слово в HTML.

0 голосов
/ 11 января 2011

Office 2007 предлагает функцию «MailEnvelope», которую можно использовать для моих целей.

...