前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >asp.net jpg 转 PDF 并提供下载

asp.net jpg 转 PDF 并提供下载

作者头像
MJ.Zhou
发布2022-05-07 16:00:01
发布2022-05-07 16:00:01
1.6K00
代码可运行
举报
文章被收录于专栏:.NET开发那点事.NET开发那点事
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
复制
        /// <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), 0, 0, 0, 0);
            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中,如果是本地磁盘上的 则

代码语言:javascript
代码运行次数:0
运行
复制
var imageStream =newFileStream("test.jpg",FileMode.Open,FileAccess.Read,FileShare.ReadWrite) 

这样处理。

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2010-09-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档