基本信息
源码名称:C# 剪贴板功能 同时黏贴图片和文字等html内容 支持中文
源码大小:1.76KB
文件格式:.cs
开发语言:C#
更新时间:2013-09-25
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍


        private void btnTest_Click(object sender, EventArgs e)
        {
            string html = "<div>这是中文,后面是文字<img src=\"http://www.baidu.com/img/bdlogo.gif\" /><br>后面还是文字,非常不错的昂,不错吧 </div>";
            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());
            return str;
            return sb.ToString();
        }