利用itextsharp生成pdf并生成zip文件及其邮件发送

在最近的一个项目中有一个下载的业务需求。下面代码实现了生成pdf以zip格式形式进行压缩处理最后将zip邮件发送,一下代码仅供参考,大家有什么好的意见,我们可以交流一下。

  ZipOutputStream zipOutputStream;
                using (MemoryStream ms = new MemoryStream())
                {
                    zipOutputStream = new ZipOutputStream(ms);
                    Encoding gbk = Encoding.GetEncoding("gbk");
                    ZipConstants.DefaultCodePage = gbk.CodePage;
                    foreach (var key in ticketUniqueIdList)
                    {
                        JsonObject json = WordToPdf(key, taskId);
                        string tuid = masterUrl +。。。。 + key;//基于安全考虑就不全部显示了
                        string strImgPath = masterUrl + "。。。。。" + HttpUtility.UrlEncode(tuid);
                        var document = new Document(PageSize.A4);
                        MemoryStream memory = new MemoryStream();
                        PdfWriter pdfwriter = PdfWriter.GetInstance(document, memory);
                        document.Open();
                        PdfPTable table = CreateTable(json["activityname"].ToString(), json["activitytime"].ToString(), json["activityplace"].ToString(), json["billname"].ToString(), json["signinfo"].ToString(), strImgPath);
                        document.Add(table);
                        document.Add(new Paragraph("  使用说明:" 
                                     , font));
                        pdfwriter.CloseStream = false;
                        document.Close();
                        byte[] buffer = memory.GetBuffer();
                        string fileName = key;
                        var entry = new ZipEntry(fileName + ".pdf");
                        entry.CompressionMethod = CompressionMethod.Deflated;
                        entry.Size = buffer.Length;
                        memory.Flush();
                        memory.Close();
                        zipOutputStream.PutNextEntry(entry);
                        zipOutputStream.Write(buffer, 0, buffer.Length);
                    }
                    zipOutputStream.Flush();
                    zipOutputStream.Finish();
                    string zipname = survey.Title + DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() +
                                 DateTime.Now.Day.ToString() + ".zip";
                    ms.Position = 0;
                    if (!(Utiles.IsPcBrowserRequest(Request)))
                    {
                        mail.AddAttachment(ms, zipname);
                        mail.Send();
                        return null;
                    }

                }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值