Word Automation: Write RTF text without going thro

2019-03-15 10:49发布

问题:

I am trying to replace the current selection in Word (2003/2007) by some RTF string stored in a variable.

Here is the current code:

Clipboard.SetText(strRTFString, TextDataFormat.Rtf)
oWord.ActiveDocument.ActiveWindow.Selection.PasteAndFormat(0)

Is there any way to do the same thing without going through the clipboard. Or is there any way to push the clipboard data to a safe place and restore it after?

回答1:

Put the RTF in a file instead of the clipboard, then insert from the file, e.g.

Selection.InsertFile FileName:="myfile.rtf", Range :="", _ ConfirmConversions:=False, Link:=False, Attachment:=False



回答2:

You can use a RichTextbox to convert RTF to text or vice versa.

RichTextBox r = new RichTextBox();
r.Rtf = strRTFString;
Console.WriteLine(r.Text);