问题 Word Automation:无需通过剪贴板即可编写RTF文本


我在尝试着 替换Word中的当前选择(2003/2007) 一些人 RTF字符串 存储在变量中。

这是当前的代码:

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

有没有办法在不通过剪贴板的情况下做同样的事情。或者有没有办法将剪贴板数据推送到安全的地方并在之后恢复?


8635
2017-08-22 13:24


起源



答案:


将RTF放在文件而不是剪贴板中,然后从文件插入,例如

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


14
2017-08-26 04:54



谢谢乔尔。为了使这个答案比原始问题的上下文更广泛有用,让我补充说 InsertFile 方法也就 Range 财产(例如,可以访问 Word.Document, Word.Document.Sections 元素等) - WizzleWuzzle


答案:


将RTF放在文件而不是剪贴板中,然后从文件插入,例如

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


14
2017-08-26 04:54



谢谢乔尔。为了使这个答案比原始问题的上下文更广泛有用,让我补充说 InsertFile 方法也就 Range 财产(例如,可以访问 Word.Document, Word.Document.Sections 元素等) - WizzleWuzzle


您可以使用RichTextbox将RTF转换为文本,反之亦然。

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

-3
2017-08-22 13:26



这不会将RTF字符串转换为纯文本吗? - Rick
嗯,我的答案似乎与这个问题没有任何相似之处。不知道我为什么写这个? - samjudson