在剪贴板上复制HTML的正确标头

本文关键字:HTML 剪贴板 复制 | 更新日期: 2023-09-27 18:12:35

我有一个完整的HTML文档,需要复制到剪贴板上,以便可以粘贴到Microsoft Word和其他应用程序中。现在我发现明显的方法不起作用,我需要在HTML内容之前添加一个特殊的标题。不幸的是,所有的样本似乎显示无效的头数据,所以我不能从中学习。我所能找到的只是处理各种复杂用例的神秘样例代码,但这仍然没有帮助我。而且没有任何可读的头号解释。

这是我在。net中作为字符串的HTML文档示例:

<!doctype html>
<html>
<body>
<table>
  <tr>
    <td>Col 1</td>
    <td>Col 2</td>
  </tr>
</table>
</body>
</html>

如果真的需要这个片段,我可能会在我的文档中添加这些注释,就在<body>元素里面。

标题应该是这样的:

Version:0.9
StartHTML:1
EndHTML:2
StartFragment:3
EndFragment:4
StartSelection:3
EndSelection:4

1、2、3、4的正确数字是什么?考虑到UTF-8编码和所需的一切,它们是如何计算的?请提供一个纯文本描述或算法,或简单的c#代码,只有这个简单的情况下,没有花哨的铃铛和口哨。我可以从那里适应。

在剪贴板上复制HTML的正确标头

好的,所以我发现片段的东西是不需要的。头文件有以下数字:

  • 1和3:报头本身的长度(为了达到可预测的结果,必须使用零填充,否则在输入数字后报头长度会发生变化,使数字无效)
  • 2和4:头的长度+整个HTML文档的UTF-8字节数

可以粘贴到Word和Excel中。不需要片段或HTML注释。

示例c#代码:

int start = header.Length;
int end = header.Length + Encoding.UTF8.GetByteCount(html);