c# - 使用 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);
解决方案
辛迪的回答很有帮助。我通过执行以下操作解决了这个问题:
- 保存文档中当前选定的位置和当前剪贴板内容。
- 插入空白脚注。
- 选择脚注。
- 将字符串作为富文本格式放入剪贴板。
- 将信息从剪贴板发送/粘贴到 Word。
- 恢复剪贴板和文档中的原始选定位置。
推荐阅读
- php - Laravel Nova Set ID manually on Form
- google-apps-script - 过滤不为空
- sql - BigQuery - 从 Google Analytics 导出不同的事件
- java - 将 Guice 配置为包含 2 个相同类型的服务,它们的依赖项具有不同的实现
- c - C 中的 morseEncoder 程序但有逻辑错误
- java - Spring Integration error is attaching completed payload
- javascript - 将错误消息与图标动态绑定到单个 jQuery 对话框
- java - Spring Boot 2.1.1: UnsatisfiedLinkError: org.apache.tomcat.jni.SSL.renegotiatePending
- webpack - Webpack 的 `parser.hooks.callAnyMember` 没有被调用
- sql - SQL JOIN 查询比较