如何向 HTML 剪贴板数据添加空格以便 WinWord 在粘贴时插入它们?
How to add spaces to HTML clipboard data so that WinWord inserts them on pasting?
在我的应用程序中,您可以将数据复制到剪贴板。数据以 HTML 格式复制到剪贴板,以便在粘贴到可以处理来自剪贴板的 HTML 数据的其他应用程序(例如 WinWord)时保留格式信息。
例子(4个字,最后2个加粗):
<span>This is </span><b>bold text</b>
结果:在 WinWord 中正确粘贴了文本,并保留了格式(粗体)。
示例(5 个空格):
<span> </span>
结果: WinWord 中没有粘贴任何内容。
问题:如何实现WinWord保留第二个例子中的空格?
我尝试将它们编码为
,但当段落标记被激活时,WinWord 将它们显示为一个圆圈。那看起来有点丑。
我通过将 CSS 值 white-space:pre
添加到 <span>
标签来解决这个问题。
虽然 white-space:pre-wrap
似乎是正确的值,但它被 WinWord 忽略了。
更新:
我还分析了 WinWord 如何创建其剪贴板数据。几个 space 的 HTML 看起来像这样:
<span style='font-size:11.0pt;line-height:105%;font-family:"Calibri",sans-serif;mso-fareast-font-family:Calibri;mso-bidi-font-family:"Times New Roman";mso-ansi-language:DE;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'>
<span style='mso-spacerun:yes'> </span>
</span>
注:
- space 位于单独的
<span>
标签中,其样式属性包含自定义 key/value 对 mso-spacerun:yes
.
- HTML 是 UTF-8 编码的,space 的字符代码是 U+00A0(没有中断 space)。
在我的应用程序中,您可以将数据复制到剪贴板。数据以 HTML 格式复制到剪贴板,以便在粘贴到可以处理来自剪贴板的 HTML 数据的其他应用程序(例如 WinWord)时保留格式信息。
例子(4个字,最后2个加粗):
<span>This is </span><b>bold text</b>
结果:在 WinWord 中正确粘贴了文本,并保留了格式(粗体)。
示例(5 个空格):
<span> </span>
结果: WinWord 中没有粘贴任何内容。
问题:如何实现WinWord保留第二个例子中的空格?
我尝试将它们编码为
,但当段落标记被激活时,WinWord 将它们显示为一个圆圈。那看起来有点丑。
我通过将 CSS 值 white-space:pre
添加到 <span>
标签来解决这个问题。
虽然 white-space:pre-wrap
似乎是正确的值,但它被 WinWord 忽略了。
更新:
我还分析了 WinWord 如何创建其剪贴板数据。几个 space 的 HTML 看起来像这样:
<span style='font-size:11.0pt;line-height:105%;font-family:"Calibri",sans-serif;mso-fareast-font-family:Calibri;mso-bidi-font-family:"Times New Roman";mso-ansi-language:DE;mso-fareast-language:EN-US;mso-bidi-language:AR-SA'>
<span style='mso-spacerun:yes'> </span>
</span>
注:
- space 位于单独的
<span>
标签中,其样式属性包含自定义 key/value 对mso-spacerun:yes
. - HTML 是 UTF-8 编码的,space 的字符代码是 U+00A0(没有中断 space)。