110,538
社区成员
发帖
与我相关
我的任务
分享
private void button5_Click(object sender, EventArgs e)
{
string html = "<p>这是中文,后面是文字<br><br><img src=\"http://ww1.sinaimg.cn/bmiddle/a275cdabjw1dupso16zldg.gif\" /><br>后面还是文字,非常不错的昂\\</p>";
var data = GetHtmlData(html);
Clipboard.SetData(DataFormats.Html, data);
}
private static string GetHtmlData(string html)
{
var sb = new StringBuilder();
const string header = @"Format:HTML Format
Version:1.0
StartHTML:<<<<<<<1
EndHTML:<<<<<<<2
StartFragment:<<<<<<<3
EndFragment:<<<<<<<4
StartSelection:<<<<<<<3
EndSelection:<<<<<<<3";
sb.Append(header);
int startHtml = sb.Length;
sb.Append(@"<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN""><!--StartFragment-->");
int fragmentStart = sb.Length;
sb.Append(html);
int fragmentEnd = sb.Length;
sb.Append(@"<!--EndFragment-->");
int endHtml = sb.Length;
// Backpatch offsets
sb.Replace("<<<<<<<1", String.Format("{0,8}", startHtml));
sb.Replace("<<<<<<<2", String.Format("{0,8}", endHtml));
sb.Replace("<<<<<<<3", String.Format("{0,8}", fragmentStart));
sb.Replace("<<<<<<<4", String.Format("{0,8}", fragmentEnd));
MemoryStream vMemoryStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(sb.ToString()));
//MemoryStream vMemoryStream = new MemoryStream(System.Text.Encoding.GetEncoding("gb2312").GetBytes(sb.ToString()));
string str = Encoding.GetEncoding(0).GetString(vMemoryStream.ToArray());
vMemoryStream.Close();
return str;
}
搞定。 使用html 粘贴复制。
剩下的就只需要自己构造html了