Ms word 当您按住Ctrl+;C MS Word中的一块内容,它有什么样的结构?

Ms word 当您按住Ctrl+;C MS Word中的一块内容,它有什么样的结构?,ms-word,clipboard,wysiwyg,copy-paste,Ms Word,Clipboard,Wysiwyg,Copy Paste,我感兴趣的是找出将数据放入剪贴板时所采用的格式。这是因为我需要开发一种WYSIWYG编辑器,它接受来自MS Word的粘贴数据,如果可能的话,我希望保留原始格式。这包括表格和要点。微软有关于这方面的文档吗 顺便说一句,我正在用PHP编程。来自[我的重点]: 许多应用程序处理的数据无法转换为 标准剪贴板格式,不丢失信息。这些 应用程序可以创建自己的剪贴板格式。剪贴板 由应用程序定义的格式称为注册格式 剪贴板格式例如,如果复制了字处理应用程序 使用标准文本格式将文本格式化到剪贴板 格式化信息将丢失。

我感兴趣的是找出将数据放入剪贴板时所采用的格式。这是因为我需要开发一种WYSIWYG编辑器,它接受来自MS Word的粘贴数据,如果可能的话,我希望保留原始格式。这包括表格和要点。微软有关于这方面的文档吗

顺便说一句,我正在用PHP编程。

来自[我的重点]:

许多应用程序处理的数据无法转换为 标准剪贴板格式,不丢失信息。这些 应用程序可以创建自己的剪贴板格式。剪贴板 由应用程序定义的格式称为注册格式 剪贴板格式例如,如果复制了字处理应用程序 使用标准文本格式将文本格式化到剪贴板 格式化信息将丢失。解决办法是 注册新的剪贴板格式,如RTF格式

该页面上有更多详细信息。

来自[我的重点]:

许多应用程序处理的数据无法转换为 标准剪贴板格式,不丢失信息。这些 应用程序可以创建自己的剪贴板格式。剪贴板 由应用程序定义的格式称为注册格式 剪贴板格式例如,如果复制了字处理应用程序 使用标准文本格式将文本格式化到剪贴板 格式化信息将丢失。解决办法是 注册新的剪贴板格式,如RTF格式


该页面上还有很多详细信息。

如果您正在编写所见即所得编辑器,那么(几乎可以肯定)将使用Javascript完成,并且您不必担心Microsoft Word中的格式化文本在粘贴之前是如何表示的,因为您无论如何都无法访问它

但是,一旦用户按下“粘贴”,浏览器请求并处理该操作,并将结果作为HTML节点粘贴到ContentEditable/DesignMode元素中,您就需要担心它在HTML中的表示方式

在很大程度上,它在HTML中的格式化程度取决于它在Word中的格式化程度。正如我们所知,通过使用字体大小下拉列表而不是更改段落样式,通过使用项目符号而不是实际的项目符号或编号列表等,在Word中很容易实现非语义。如果您依赖于项目符号列表成为正确的HTML无序列表,您需要希望在Word中添加它们的人使用列表函数添加它们,否则您将需要额外复杂的处理

最终结果还可能受到用户使用的浏览器、是否处于怪癖模式以及他们使用的单词版本的影响。此外,在OpenOffice中打开的同一文档将以不同方式粘贴到浏览器中的HTML中。您需要在服务器端使用通用HTML过滤器和消毒剂

此外,您可能希望从生成的HTML中至少过滤掉以下内容(除非您有兴趣保留用户添加的任何自定义样式,无论其是否适合web):

  • IE特定条件注释。有时,它们最终会生成HTML
  • 任何内联样式,包括
    style=
    属性、
    元素等

如果您正在编写所见即所得编辑器,那么(几乎可以肯定)这将在Javascript中完成,并且您不必担心Microsoft Word中的格式化文本在粘贴之前是如何表示的,因为您无论如何都无法访问它

但是,一旦用户按下“粘贴”,浏览器请求并处理该操作,并将结果作为HTML节点粘贴到ContentEditable/DesignMode元素中,您就需要担心它在HTML中的表示方式

在很大程度上,它在HTML中的格式化程度取决于它在Word中的格式化程度。正如我们所知,通过使用字体大小下拉列表而不是更改段落样式,通过使用项目符号而不是实际的项目符号或编号列表等,在Word中很容易实现非语义。如果您依赖于项目符号列表成为正确的HTML无序列表,您需要希望在Word中添加它们的人使用列表函数添加它们,否则您将需要额外复杂的处理

最终结果还可能受到用户使用的浏览器、是否处于怪癖模式以及他们使用的单词版本的影响。此外,在OpenOffice中打开的同一文档将以不同方式粘贴到浏览器中的HTML中。您需要在服务器端使用通用HTML过滤器和消毒剂

此外,您可能希望从生成的HTML中至少过滤掉以下内容(除非您有兴趣保留用户添加的任何自定义样式,无论其是否适合web):

  • IE特定条件注释。有时,它们最终会生成HTML
  • 任何内联样式,包括
    style=
    属性、
    元素等

    • 将有十几种格式可供选择。文本、RTF、HTML和OLE是主要的。还有一些愚蠢的格式,比如位图,使用延迟渲染动态渲染

      将有十几种格式可供选择。文本、RTF、HTML和OLE是主要的。还有一些愚蠢的格式,比如位图,使用延迟渲染动态渲染

      旁白:你是在说一个web应用程序吗(因为你提到了PHP)?如果是这样的话,你就看不到剪贴板的“本机”形式了。顺便问一下:你说的是一个web应用程序吗(因为你提到了PHP)?如果是这样,你就看不到剪贴簿了