asp.net 生成word,处理图片,富文本框内容图片处理



//基本导出方法
public
void Download() { Random rd = new Random(); string fileName = DateTime.Now.ToString("yyyyMMddhhmm") + rd.Next() + ".doc"; //存储路径 string path = Server.MapPath(fileName); //创建字符输出流 StreamWriter sw = new StreamWriter(path, true, System.Text.UnicodeEncoding.UTF8); //需要导出的内容 // string str = "无标题文档这里放从数据库导出的word文档内容"; string str = ""; str += "无标题文档"; str += "
阅读报表
"; str += ""; str += ""; str += ""; str += ""; str += ""; str += "
2000010000
3000030000
"; //写入 sw.Write(str); sw.Close(); Response.Clear(); Response.Buffer = true; this.EnableViewState = false; Response.Charset = "utf-8"; Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); Response.ContentType = "application/octet-stream"; Response.WriteFile(path); Response.Flush(); Response.Close(); Response.End(); }

 //图片处理方法 图片转字节 base64 放到img src 中 如 private string ImgToBase64String(string Imagefilename)
        {
            string result = "";
            try
            {
                using (FileStream fs = new FileStream(Imagefilename,FileMode.Open,FileAccess.Read))
                {
                    byte[] byteArray = new byte[fs.Length];
                    fs.Read(byteArray, 0, byteArray.Length);
                    result = Convert.ToBase64String(byteArray);
                }
            }
            catch
            {
                result = "";
            }
            return result;
        }
 /// 
        /// 富文本框 内容里面的 图片处理
        /// 
        /// 
        /// 
        public string ContentHandler(string text)
        {
            if (string.IsNullOrEmpty(text))
            {
                return text;
            }

            HtmlDocument document = new HtmlDocument();
            document.LoadHtml(text);
            var imgNodes = document.DocumentNode.SelectNodes("//img");
            if (imgNodes != null)
            {
                Parallel.ForEach(imgNodes, imgNode =>
                {
                    var src = imgNode.GetAttributeValue("src", "");
                    if (!string.IsNullOrEmpty(src))
                    {
                        var filename = context.Server.MapPath(src);
                        if (File.Exists(filename))
                        {
                            imgNode.SetAttributeValue("src", "data:image/jpeg;base64," + ImgToBase64String(filename));

                        }
                    }
                });
            }

            return document.DocumentNode.OuterHtml;

        }