OL 2007 Addin: получить выбор в формате HTML из окна инспектора Outlook - PullRequest
0 голосов
/ 28 мая 2011

Я работаю с надстройкой, где мне нужно преобразовать выделенный текст в редакторе Outlook, в частности, в инспектор Compose.

Преобразование текста не должно игнорировать существующее форматирование текста, поэтому я подумывал о том, чтобы получить отформатированный текст HTML из выделения.

Outlook 2007/2010 Элемент составления инспектора имеет формат Word, поэтому я использовал трюк «копировать в буфер обмена», чтобы получить текущий выбор, преобразовать его в диапазон, скопировать в буфер обмена и получить обратно данные в формате HTML следующим образом :

private static void XFormMail(Inspector insp)
{
    Word.Document doc = (Word.Document)insp.WordEditor;
    Word.Selection sel = doc.Windows[1].Selection;
    Word.Range range = sel.Range;

    Debug.WriteLine(String.Format("Selection chars: {0}", sel.Characters.Count));
    Debug.WriteLine(String.Format("Selected text: {0}", sel.Text));
    Debug.WriteLine(String.Format("Selected XML: {0}", sel.XML));

    range.Copy();
    string h = (string)Clipboard.GetData(DataFormats.Html).ToString();
}

Есть ли способ получить HTML напрямую из объекта выделения без использования буфера обмена или экспорта диапазона во временный файл как HTML?

Заранее спасибо.

1 Ответ

1 голос
/ 28 мая 2011

Я не уверен, но попробуйте методы Range.Paste, Range.PasteSpecial и Range.PasteFormat.Я использую эти методы в Excel.Range в странных ситуациях.офисные приложения имеют собственный буфер обмена, но нет возможности получить программный доступ (печально)

...