2016-01-12 5 views
0

В моем приложении C# я генерирую html, который используется для визуализации данных, чтобы скопировать его в буфер обмена. Я нашел много ссылок, объясняющих, как скопировать html в буфер обмена, но все они говорят о копировании фрагментов, а не о завершенных html-документах.Скопируйте полную Html-страницу в буфер обмена

Я следил за этим tutorial и экспериментировал с числами внутри описания, но не смог скопировать мой полный html и не копировать часть описания. Мне нужен html, чтобы вставить его, например, в электронную почту, чтобы получить хорошо отформатированный текст.

так может кто-нибудь, пожалуйста, скажите мне, что является самым простым способом решить эту проблему?

EDIT:

я говорить о настольном приложении, и это, как я генерировать 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); 
+0

Какое приложение это приложение? Desktop? Веб? Вы сохраняете сгенерированный HTML в строку или извлекаете в поток? – Daved

+0

его настольное приложение. Я просто создаю stringBuilder с нужным html, а затем вызываю Clipboard.SetText (html.ToString(), TextDataFormat.Html). Мне просто нужно сгенерировать html, чтобы скопировать его в буфер обмена, а затем вставить его, например, в электронное письмо. – richard

ответ

0

Я делаю несколько предположений из вашего вопроса (т.е.) У вас есть приложение для рабочего стола на C#, которое должно получить содержимое HTML-страницы и проанализировать его в приложении C#. Если да, то код будет

using System.Net; 

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

reply Переменная может быть разобрано по мере необходимости.

+0

извините за мое нечеткое описание. Я редактировал мой вопрос. – richard

0

Если вы хотите, чтобы строка была сохранена как текст HTML, удалите параметр TextDataFormat или установите его в текст. Если вы хотите сохранить фактические данные HTML, прочитайте этот пост: http://theartofdev.com/2014/06/12/setting-htmltext-to-clipboard-revisited/.

Вместо того, чтобы просто устанавливать буфер обмена в текстовую строку, вам необходимо создать объект DataObject и установить его так, чтобы все, что получает данные, могло прочитать часть, которую она поддерживает.

0

Кроме того, вы можете щелкнуть правой кнопкой мыши страницу в своем любимом браузере и просмотреть источник и скопировать полный HTML-код этой страницы. Но есть и есть! с таким подходом. Оба Google и Firefoxпросмотр-источник режимы будут обертывать 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">