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

  • 相关阅读:
    URAL 2014 Zhenya moves from parents 线段树
    git 安装及命令
    在eclipse中执行sql
    在eclipse中配置server和database
    java的regex问题笔记
    在开发中写一些tool来提升自己的效率
    在Eclipse中给JRE-Library添加本地Javadoc
    利用eclipse中的各种功能帮助你理解代码
    Eclipse中直接操作本地文件系统
    form action中如何填写相对目录
  • 原文地址:https://www.cnblogs.com/kklldog/p/1836657.html
Copyright © 2020-2023  润新知