zoukankan      html  css  js  c++  java
  • asp.net jpg 转 PDF 并提供下载

    代码
            /// <summary>
            
    /// 下载按钮
            
    /// </summary>
            
    /// <param name="sender"></param>
            
    /// <param name="e"></param>
            protected void Button2_Click(object sender, EventArgs e)
            {
                
    using (var imageStream = new FileStream(MapPath("~/views"+ "/print.pdf", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                {
                  
    byte[] bytes =  this.StreamToBytes(imageStream);
                  
    this.Download(bytes, "pdf");
                }
            }
            
    /// <summary>
            
    /// 在服务器上生成一个PDF COPY
            
    /// </summary>
            private void CreatePDF()
            {
                var bytes 
    = GetData();

                
    int width = bytes.ToImage().Width;
                
    int height = bytes.ToImage().Height;
                Document document 
    = new Document(new Rectangle(width, height), 0000);
                
    using (var stream = new FileStream(MapPath("~/views"+ "/print.pdf", FileMode.Create, FileAccess.Write, FileShare.None))
                {
                    PdfWriter.GetInstance(document, stream);
                    document.Open();
                    
    using (Stream imageStream = new MemoryStream(bytes))
                    {
                        var image 
    = iTextSharp.text.Image.GetInstance(imageStream);
                        document.Add(image);
                    }
                    document.Close();
                }
            }

            
    /// <summary>
            
    /// 下载到本地
            
    /// </summary>
            
    /// <param name="bytes"></param>
            
    /// <param name="fileType"></param>
            public void Download(byte[] bytes ,string fileType)
            {
                Response.Buffer 
    = true;
               
    // Page.Response.Clear();//清除缓冲区所有内容
                Page.Response.ContentType = "application/octet-stream";
                Page.Response.AddHeader(
    "Content-Disposition""attachment;filename=" + HttpUtility.UrlEncode("print."+fileType));
                
    byte[] file = bytes;
                Response.BinaryWrite(file);
                Response.Flush();
                Response.End();
            }

    使用第三方dll:iTextSharp 。

    这里图片被转成了byte[]放在cache中,如果是本地磁盘上的 则

    var imageStream =newFileStream("test.jpg",FileMode.Open,FileAccess.Read,FileShare.ReadWrite)

    这样处理。

    页面初始化的时候调用下CreatePDF 

    QQ群:1022985150 VX:kklldog 一起探讨学习.NET技术
    作者:Agile.Zhou(kklldog)
    出处:http://www.cnblogs.com/kklldog/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    Ui——创建视图的方法及过程
    iOS设计模式----原型模式
    浅谈OC中排序的方法
    Solid Dominoes Tilings (轮廓线dp打表 + 容器)
    Shell Necklace (dp递推改cdq分治 + fft)
    Rigid Frameworks (画图二分图规律 + DP + 数学组合容斥)
    PowMod (欧拉推式子 + 指数循环节)
    Necklace (全排列 + 匈牙利)
    GCD (RMQ + 二分)
    Game (思维)
  • 原文地址:https://www.cnblogs.com/kklldog/p/1836657.html
Copyright © 2011-2022 走看看