代码之家  ›  专栏  ›  技术社区  ›  Krisztián Balla

如何向HTML剪贴板数据中添加空格,以便WinWord在粘贴时插入它们?

  •  1
  • Krisztián Balla  · 技术社区  · 8 年前

    在我的应用程序中,您可以将数据复制到剪贴板。数据以HTML格式复制到剪贴板,以便在粘贴到可以处理剪贴板中HTML数据的其他应用程序(例如WinWord)时保留格式信息。

    示例(4个单词,最后2个加粗):

    <span>This is </span><b>bold text</b>
    

    结果: 在WinWord中正确粘贴文本,并保留格式(粗体)。

    示例(5个空格):

    <span>     </span>
    

    结果: WinWord中没有粘贴任何内容。

    问题:如何实现WinWord保留第二个示例中的空格?

    我试着将它们编码为 &nbsp; 但当段落标记被激活时,WinWord会将它们显示为一个圆圈。这看起来有点难看。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Krisztián Balla    8 年前

    我通过添加CSS值解决了这个问题 white-space:pre <span> 标签。

    虽然 white-space:pre-wrap 似乎是正确的值,但被WinWord忽略。

    更新:

    我还分析了WinWord如何创建剪贴板数据。几个空格的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>
    

    注:

    • 这些空间位于单独的 <span> 带有包含自定义键/值对的style属性的标记 mso-spacerun:yes .
    • HTML是UTF-8编码的,空格的字符代码是U+00A0(无中断空格)。
    推荐文章