2011-05-27 2 views
0

Je travaille avec un addin dans lequel je dois transformer du texte sélectionné dans un éditeur Outlook, en particulier l'inspecteur de composition. La transformation de texte ne doit pas ignorer la mise en forme du texte présent, donc je pensais obtenir le texte au format HTML de la sélection.OL 2007 Addin: Obtenir une sélection au format HTML à partir de la fenêtre d'inspecteur Outlook

Outlook 2007/2010 L'élément de composition de l'inspecteur est au format Word, j'ai donc utilisé l'astuce "copier dans le presse-papiers" pour obtenir la sélection actuelle, la transformer en Plage, la copier dans le presse-papiers et récupérer les données au format HTML suit:

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(); 
} 

Il est possible d'obtenir directement du code HTML de l'objet de sélection sans utiliser Presse-papiers ou l'exportation plage de fichier temporaire en HTML?

Merci d'avance.

Répondre

1

Je ne suis pas sûr, mais essayez les méthodes Range.Paste, Range.PasteSpecial et Range.PasteFormat. J'utilise cette méthode dans Excel.Range dans les situations de smiliar. applications de bureau a un propre presse-papiers, mais aucun moyen d'accéder par programme (triste)

+0

J'ai utilisé le presse-papiers, merci. –

Questions connexes