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/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    linux centos 7.5 开启 postgresql 远程访问
    linux centos 7 开启 ftp
    CentOS 7.5 改IP后不生效无法上网解决办法
    Windows Server 2008R2 及上系统安装 Windows 可选功能
    C#只允许运行一个实例
    C# 命令行参数分割
    C# 获取所有已登录系统的用户名
    C#获取进程用户名
    psexec 用法
    检测 Visual C++ Redistributable Package 相应版本是否已安装
  • 原文地址:https://www.cnblogs.com/kklldog/p/1836657.html
Copyright © 2011-2022 走看看