【问题标题】:Insert a formatted footnote using Microsoft.Interop.Office.Word使用 Microsoft.Interop.Office.Word 插入格式化的脚注
【发布时间】:2018-10-19 08:22:25
【问题描述】:

我正在尝试使用 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);

【问题讨论】:

  • 在您显示的代码中,sstringstring 不能包含格式信息 - 它只是一系列字符。唯一可以将格式化内容插入 Word 文档的string 信息必须是 OPC 平面文件格式的有效 Word Open XML。对于 RichText,Word 需要转换器,这意味着代码必须使用 InsertFile 或从剪贴板粘贴。

标签: c# winforms office-interop


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多