gpt4 book ai didi

.net - 格式化文本的复制粘贴如何工作?

转载 作者:行者123 更新时间:2023-12-03 10:05:01 25 4
gpt4 key购买 nike

我对实现复制和粘贴功能的内容感到困惑。这正是我所困惑的:

当我从 MS Word(使用与 HTML 不同的标记语言)复制格式化文本并粘贴到 Gmail 或 http://www.freerichtexteditor.com/index.php?inc=demo/index 等 Web 浏览器中的 RTF 编辑器时格式被保留,但现在标记被转换为 HTML。这怎么发生的?什么处理了转换?

如果我已将此文本粘贴到其他应用程序中,它将被转换为该格式。如果我复制了一些 html 页面并将其粘贴到 word 中,那么将会有从 HTML 到 word 的标记转换。又如何?

然后,如果我将此复制的格式化文本粘贴到记事本等文本编辑器中,则所有格式都将丢失并且标记将被剥离。哪个应用程序剥离了标记并将其转换为纯文本?

当我复制格式化文本时,究竟复制到剪贴板的内容是什么?我是 .NET C# 程序员。我将如何编程?

最佳答案

剪贴板上的数据使用 FORMATETC 记录进行扩展:
http://msdn.microsoft.com/en-us/library/ms682177%28VS.85%29.aspx
FORMATETC 记录包含第一个字段 cfFormat描述文件格式的成员。 cfFormat可以是预定义的值,如 CF_UNICODETEXTCF_BITMAP或由例如定义的应用程序定义类型微软字。
在 .NET 中,您显然可以查询 Clipboard对象以找出它包含哪些数据格式:
http://msdn.microsoft.com/en-us/library/system.windows.forms.clipboard.aspx
您正在寻找的方法是 Clipboard.SetData :

If you do not know the format of the target application, you can store data in multiple formats using this method.

Data stored using this method can be converted to a compatible format when it is retrieved.

To retrieve data from the Clipboard in a particular format, first use the ContainsData method to determine whether the Clipboard contains data in that format before retrieving it with the GetData method


至于你的具体问题,它是如何在 Word 中工作的,上面的链接应该给你足够的信息来自己编写一个小剪贴板查看器。由于 Microsoft Word 能够输出 HTML 文件,我的猜测是 Word 将数据以简单的文本、HTML、RTF 和 Word 格式写入剪贴板上。

关于.net - 格式化文本的复制粘贴如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1885956/

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