添加多个水晶报告pdf到zip文件

本文关键字:zip 文件 pdf 报告 水晶 添加 | 更新日期: 2023-09-27 18:16:26

我试图将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");
    }
}

添加多个水晶报告pdf到zip文件

你的问题中的代码工作吗?如果是这样,最简单的方法可能是在添加其他流时打开zip文件:

using (ZipFile zip = ZipFile.Read(ExistingZipFile)) 

然后使用与问题中相同的代码添加新文件,然后保存为:

zip.Save();

您可以随意添加和删除文件到现有的zip存档。如果用相同的方法创建所有流,也可以在关闭文件之前只添加来自多个流的数据,即添加多个zip。