我正在尝试将pdf文件从Crystal导出到流,然后我想使用DotNetZip库将它们(总共7个)添加到zip文件中。我只是想在下面添加一个。我有一种感觉我离开了。请帮忙。
MemoryStream oStream;
CrystalDecisions.CrystalReports.Engine.ReportDocument rpt = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
if (a2batch.Count > 0) // a2batch - My Crystal Datasource List
{
rpt.Load(Server.MapPath("~\\Report\\Construction\\ScheduleA2.rpt"));
rpt.SetDataSource(a2batch);
oStream = (MemoryStream)rpt.ExportToStream(ExportFormatType.PortableDocFormat);
using (ZipFile zipFile = new ZipFile())
{
zipFile.AddEntry("Report.pdf", oStream);
zipFile.Save("Report.zip");
}
}
答案 0 :(得分:0)
您问题中的代码是否有效?如果是这样,最简单的可能就是在添加其他流时打开zip文件:
using (ZipFile zip = ZipFile.Read(ExistingZipFile))
然后使用与您问题相同的代码添加新文件,然后使用以下命令保存:
zip.Save();
您可以随意添加和删除现有zip存档文件。如果您使用相同的方法创建所有流,也可以在关闭文件之前添加来自多个流的数据,即在彼此之后添加几个zip.AddEntry语句。