gpt4 book ai didi

.net - 如何使用 .NET 在 Word 文档中用格式化文本替换占位符?

转载 作者:行者123 更新时间:2023-12-04 16:11:15 25 4
gpt4 key购买 nike

我有一个 C# .NET 应用程序,它需要加载一个 Word 文档,找到一些占位符文本(例如“

”)并将其替换为从 RTF 控件中提取的 格式化文本。然后这个最终文档在 Outlook 中作为电子邮件消息打开,准备发送。

所有这些都有效,除了我不知道如何将格式从 RTF 控件转换到 Word 文档中。 RTF 文本包含粗体、点等格式,文本长度超过 256 个字符,因此 Word 互操作查找和替换方法将不起作用。

我可以使用 Find 方法,然后将选择文本设置为我想要的内容(避免 256 个字符的限制),但我终究无法弄清楚如何处理格式。有一个 FormattedText 成员似乎可以完成这项工作,但无论我分配给它什么(甚至分配给它自己)都会产生错误,所以我只能假设它是只读的。

但这是一个有争议的问题,因为 RTF 控件似乎只能提供没有格式的纯文本或包含 RTF 代码的字符串。 Word 似乎没有解释 RTF 代码的功能,所以我现在能做的就是用一些难以理解的 RTF 序列替换

占位符。

我一直在研究 OpenXML API,它可以让我将格式化文本作为 XML 片段插入,但我看不出如何获取 RTF 控件的内容作为要插入的 XML 片段。

有谁知道可以实现这一点的方法吗?

最佳答案

这应该可以解决您的问题:
How to paste a Rich Text Format string into Word with Visual Basic Automation

解决方案是将 RTF 代码放入剪贴板并指定它是 RTF 格式。然后用Wordapp.Selection.Paste把内容粘贴到word中。 Word 知道如何处理 RTF(它既可以打开 rtf 文档,也可以从剪贴板读取 RTF 数据)。

如果使用此方法,请确保在操作前存储剪贴板内容,并在操作后恢复剪贴板内容,用户不喜欢程序自行更改剪贴板内容而不通知。 (此方法只改变剪贴板的RTF部分,剪贴板可以存储多种格式,所以你不必存储/恢复所有格式)

关于.net - 如何使用 .NET 在 Word 文档中用格式化文本替换占位符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5945088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com