2011-12-03 68 views
0

我試圖將PDF文件從Crystal導出到流,然後我想使用DotNetZip庫將它們添加到一個zip文件中。我只是想在下面添加一個。我有一種感覺,我走了。請幫忙。將多個水晶報告pdfs添加到壓縮文件

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

問題中的代碼是否正常工作?如果是的話,最簡單的可能是剛剛打開壓縮文件時添加其他流:在你的問題中添加新的文件

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

然後使用相同的代碼,然後將其保存:

zip.Save(); 

您可以隨意添加和刪除文件到現有的zip存檔。如果您使用相同方法創建所有流,則也可以在關閉文件之前添加多個流中的數據,即相互添加幾個zip.AddEntry語句。