2008-08-22 12 views
11

Estoy tratando de reemplazar la selección actual en Word (2003/2007) por alguna cadena RTF almacenado en una variable.Automatización Palabra: Escribir texto RTF sin pasar por portapapeles

Aquí está el código actual:

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

¿Hay alguna manera de hacer lo mismo sin tener que pasar a través del portapapeles. ¿O hay alguna forma de llevar los datos del portapapeles a un lugar seguro y restaurarlos después?

Respuesta

14

Coloque el RTF en un archivo en lugar de en el portapapeles, luego inserte el archivo, p.

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

+0

Gracias Joel. Para que esta respuesta sea más útil que el contexto de la pregunta original, permítanme agregar que el método 'InsertFile' también está en la propiedad' Range' (que es accesible, por ejemplo, en 'Word.Document',' Word. Elementos de Document.Sections', etc.) – WizzleWuzzle

-3

Puede usar un RichTextbox para convertir RTF a texto o viceversa.

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

No sería esto convertir la cadena RTF a texto sin formato? – Rick

+0

Mmmn, mi respuesta no parece guardar ningún parecido con la pregunta. Me pregunto por qué incluso escribí eso? – samjudson

Cuestiones relacionadas