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

  • 相关阅读:
    413 Request Entity Too Large
    小米3手机上加载相册图片失败的问题
    MVC+Ninject+三层架构+代码生成 -- 总结(99)
    1)python 爬取小说
    102)微信小程序 van-dialog
    101) 微信小程序 input 双向绑定
    MVC 表格按树状形式显示 jstree jqgrid
    1. mvc 树形控件tree + 表格jqgrid 显示界面
    叫號系統
    HTML5 下拉控件绑定数据
  • 原文地址:https://www.cnblogs.com/kklldog/p/1836657.html
Copyright © 2011-2022 走看看