将完整的Html页面复制到剪贴板

时间:2016-01-12 21:37:38

标签: c# html clipboard

在我的c#app中,我正在生成用于可视化数据的html,以便将其复制到剪贴板。我找到了许多解释如何将html复制到剪贴板的链接,但是他们都讨论了复制片段,而不是完整的html文档。

我跟着这个tutorial并尝试了描述中的数字,但是在没有复制描述部分的情况下也未能复制我的完整html。我需要将HTML粘贴到电子邮件中以获得格式正确的文本。

所以有人可以告诉我解决这个问题的最简单方法是什么?

编辑:

我谈论一个桌面应用程序,这就是我如何生成我想要复制到剪贴板的html(-1只是一个例子。我尝试了很多其他数字):

        var htmlHeader = new StringBuilder();
        htmlHeader.Append("Version:0.9 ");
        htmlHeader.Append("StartHTML:-1 ");
        htmlHeader.Append("EndHTML:-1 ");
        htmlHeader.Append("StartFragment:-1 ");
        htmlHeader.Append("EndFragment:-1 ");
        htmlHeader.Append("StartSelection:-1 ");
        htmlHeader.Append("EndSelection:-1 ");
        htmlHeader.Append("<!DOCTYPE> ");
        var mainHtmlString = "<html><body style='background-color: #E5EDFF;'>" +        contentTasks + contentContacts + "<body></html>";
        Clipboard.SetText(htmlHeader.ToString() + mainHtmlString, TextDataFormat.Html);

3 个答案:

答案 0 :(得分:0)

我从您的问题中做了一些假设,(例如)您有一个桌面C#应用程序需要获取HTML页面的内容并在C#应用程序中解析它。如果是,那么代码将是

using System.Net;

WebClient client = new WebClient ();
string reply = client.DownloadString (address); /* address is the complete URL as string */

可以根据需要解析变量reply

答案 1 :(得分:0)

如果您只想将字符串保存为HTML文本,请删除TextDataFormat参数,或将其设置为文本。如果您想要保存实际的HTML数据,请查看以下帖子:http://theartofdev.com/2014/06/12/setting-htmltext-to-clipboard-revisited/

您不必仅将剪贴板设置为文本字符串,而是必须创建一个DataObject并对其进行设置,以便接收数据的任何内容都可以读取它支持的部分。

答案 2 :(得分:0)

此外,您可以在您喜欢的浏览器中右键单击该页面并查看源代码并在那里复制完整的页面HTML代码。但是有一个问题!用这种方法。 Google Firefox view-source 模式都会将页面HTML代码换行。在剪贴板缓冲区中,行号实际上是一个html包装器代码,您必须将其删除。 IE不会这样做。

//Firefox Paste from source view
//<!--StartFragment--><pre id="line1"><span></span><span class="doctype"><!DOCTYPE html></span><span>
                    //<span id="line2"></span>


//Google Chrome paste from source view
//<!--StartFragment--><table style="letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><tbody><tr><td class="line-number" value="1"><!DOCTYPE html></td><td class="line-content">