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

来源:互联网 发布:java中map的用法详解 编辑:程序博客网 时间:2024/05/21 22:39

在最近的一个项目中有一个下载的业务需求。下面代码实现了生成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
原创粉丝点击