从网页中拷贝一段有颜色的文字,粘贴到word中是有颜色的,粘贴到txt文件是无颜色的,那么拷贝的是什么?

wkl7123
  • 340

如果是红色的world,代码可能是world,但真正拷贝的应该不是它,直接复制这段代码复制到word中还是显示这段代码而不是红色的hello。曾把word文档另存为rtf,找到world对应的字段

<w:r w:rsidRPr="00903B1E">
<w:rPr>
<w:color w:val="FF0000"/>
</w:rPr>
<w:t>world
</w:t>
</w:r>

复制到word文档中还是显示代码而不是红色的world。

所以,不知道拷贝的时候,计算机到底储存了什么,支持富文本的编辑器和普通的txt文档是如何处理这些信息的?

回复
阅读 7k
1 个回答

这个问题的答案在于Windows的剪贴板本身。
因为Windows的剪贴板是支持富文本的,为了实现这种功能,事实上其内部对同一个数据(就是当你按下键盘上的Ctrl+C后)会保存不同格式的多个版本。具体的版本类型可以参考http://msdn.microsoft.com/en-us/library/windows/desktop/ms649013%28v=vs.85%29.aspx,有十来种呢。
我们最常用的一种,是从网页中复制一段内容,这时其实剪贴板会保存两种格式,一种是CF_TEXT格式,就是剔除格式信息后的可见文本,粘贴到记事本中输出的就是这种;另一种是CF_HTML格式,可以参考http://msdn.microsoft.com/en-us/library/windows/desktop/ms649015%28v=vs.85%29.aspx,包含所复制区域的完整HTML格式信息。word本身是支持HTML格式的,因此粘贴到word时会用这种格式输出。

我还记得以前有一段时间,从word复制内容出来粘贴到QQ上老是会变成图片发送出去,猜测应该是QQ从剪贴板读取数据时优先提取了CF_BITMAP格式所致。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏