【问题标题】:Correct header for copying HTML on the clipboard在剪贴板上复制 HTML 的正确标题
【发布时间】:2016-10-11 07:58:58
【问题描述】:

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

下面是我在 .NET 中作为字符串的示例 HTML 文档:

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

如果确实需要这个片段,我可能会在我的文档中将这些 cmets 添加到 &lt;body&gt; 元素内。

标题应该看起来像这样:

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

1、2、3 和 4 的正确数字是多少?考虑到 UTF-8 编码和所需的一切,它们是如何计算的?请为这个简单的案例提供纯文本描述或算法,或简单的 C# 代码,不要花哨的东西。我可以从那里适应。

【问题讨论】:

标签: c# html .net clipboard


【解决方案1】:

好的,所以我发现不需要片段。标头有以下数字:

  • 1和3:header本身的长度(需要补零才能达到可预测的结果,否则放入数字后header长度会发生变化,导致数字无效)
  • 2和4:头部长度+整个HTML文档的UTF-8字节数

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

示例 C# 代码:

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

【讨论】:

    猜你喜欢
    • 2016-09-26
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    • 1970-01-01
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    相关资源
    最近更新 更多