c# - 如何在 C# 中将文本从 RTF 插入到 Word 文档

标签 c# ms-word rtf

我正在使用 winservice 创建 Word 文档。
我唯一的问题是将 rtf 粘贴到单词选择。

我有这个代码:

private static void PasteRtf(object bookmarkName, 
                             OFFICE.Application wordApplication, 
                             Document wordDocument, string rtfText, bool winservice)
    {
        if(bookmarkName == null ||
           wordApplication == null ||
           wordDocument == null) return;

        if (!winservice)
        {
            Clipboard.Clear();
            Clipboard.SetText(rtfText, TextDataFormat.Rtf);
            IDataObject formatedText = Clipboard.GetDataObject();
            if (formatedText != null)
            {
                wordDocument.Bookmarks[bookmarkName].Range.Select();
                Selection sel = wordApplication.Selection;
                sel.Paste();
            }
            Clipboard.Clear();
        }
        else
        {
            ????

        }
    }

你知道如何在不使用剪贴板的情况下做到这一点吗?

最佳答案

解决方案:

wordDocument.Bookmarks[bookmarkName].Range.Select();
Selection sel = wordApplication.Selection;

wf.RichTextBox tb = new wf.RichTextBox();
tb.Rtf = rtfText;

string fileName = Path.Combine(UserInfo.User.TempPath,
                                                   Guid.NewGuid() + ".rtf");

tb.SaveFile(fileName, wf.RichTextBoxStreamType.RichText);

object ConfirmConversions = false;
object Link = false;
object Attachment = false;
object lMissing = System.Reflection.Missing.Value;
sel.InsertFile(fileName, ref lMissing, ref ConfirmConversions, ref Link, ref Attachment);

File.Delete(fileName);

关于c# - 如何在 C# 中将文本从 RTF 插入到 Word 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35630599/

相关文章:

c# - Xamarin.Forms - 数据更改时 ListView 不更新

ms-word - Word AddIn 无法加载,但是当我将 Visual Studio 的 "Solution Configuration"从“调试”更改为“发布”时,它会加载

iphone - 将 BOM 与文件一起保存

c# - 如何将 RTF 格式转换为纯文本格式?

c# - 在foreach循环中插入列表时如何处理事务

c# - 如何克服 Windows 组件对 Windows 运行时类型的限制?

c# - GraphViz C# 互操作偶尔会导致 AccessViolationException

wpf - DoDragDrop() - droptarget 是另一个应用程序(word 或 excel)

c# - 如何使用 C# 和 OpenXml 访问 Word 文档中大纲的编号?

c++ - 同一行左右对齐(RTF 文件)