首页 > 解决方案 > 使用 Microsoft.Interop.Office.Word 插入格式化的脚注

问题描述

我正在尝试使用 WinForms 应用程序将格式化的脚注插入到打开的 Word 文档中。

虽然我可以使用 Interop.Word 设置纯文本脚注,但只要我使用纯文本,它就可以正常工作。但是,我还希望用户能够将富文本格式的文本从富文本框中粘贴到脚注中。这永远不会起作用,并且总是显示富文本代码。

我知道脚注可以采用格式,因为如果我将富文本放入剪贴板并将其粘贴到脚注中,格式就会被保留。

我什至尝试将富文本放入剪贴板,然后使用“s = Clipboard.GetText(TextDataFormat.Rtf);”将字符串设置为剪贴板内容 似乎这应该正是我要粘贴的内容,但如果我粘贴到脚注中,它就可以工作。如果程序使用下面的代码设置它不起作用。

我很感激任何帮助。

application = (Microsoft.Office.Interop.Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");

application.ActiveDocument.Footnotes.Add(application.Selection.Range, "", s);

标签: c#winformsoffice-interop

解决方案


辛迪的回答很有帮助。我通过执行以下操作解决了这个问题:

  1. 保存文档中当前选定的位置和当前剪贴板内容。
  2. 插入空白脚注。
  3. 选择脚注。
  4. 将字符串作为富文本格式放入剪贴板。
  5. 将信息从剪贴板发送/粘贴到 Word。
  6. 恢复剪贴板和文档中的原始选定位置。

推荐阅读