【问题标题】:Word Automation: Write RTF text without going through clipboard文字自动化:无需通过剪贴板即可编写 RTF 文本
【发布时间】:2010-09-06 13:04:30
【问题描述】:

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

这是当前代码:

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

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

【问题讨论】:

    标签: vba automation ms-word


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢乔尔。为了使这个答案比原始问题的上下文更广泛有用,让我补充一点,InsertFile 方法也在Range 属性上(例如,在Word.DocumentWord.Document.Sections 元素上可以访问,等)
    【解决方案2】:

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

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

    【讨论】:

    • 这不会将 RTF 字符串转换为纯文本吗?
    • 嗯,我的回答似乎与问题没有任何相似之处。想知道我为什么要写这个吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    相关资源
    最近更新 更多