簡體   English   中英

在水晶報表中循環導出為PDF

[英]exporting to PDF in a loop in crystal reports

我在生成多個PDF水晶報表(即循環生成)時遇到困難。 基本上我創建的是PDF文件,然后壓縮這些文件並生成HTTP Response。為演示代碼,我在這里運行了兩次代碼。

Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/zip";
Response.AppendHeader("content-disposition", "attachment; filename=Report.zip");
using (ZipFile zip = new ZipFile())
{                    
        for (int i = 0; i < 2; i++)
        {
            var re = rpt.ExportToStream(ExportFormatType.PortableDocFormat);
            string Name="PDF"+i+".pdf";
            zip.AddEntry(Name, re);
        }
        zip.Save(Response.OutputStream);                          
}

Response.Clear();

它成功生成了zip文件,但是當我嘗試提取該zip文件時,我給出了一個錯誤, No archive found (The archive is either in unknown formate or damaged).格式No archive found (The archive is either in unknown formate or damaged). 任何幫助,將不勝感激。 順便說一句,我點擊了此鏈接,“ 將Crystal Report循環導出為PDF”僅適用於

如果zip文件未附加到本地路徑,則使用memorystreem。

Response.ClearContent(); Response.ClearHeaders();
Response.ContentType =“應用程序/郵政編碼”;
Response.AppendHeader(“ content-disposition”,“ attachment;
文件名= Report.zip“);

使用(var memoryStream = new MemoryStream()){使用(var archive = new ZipArchive(memoryStream,ZipArchiveMode.Create,true))
{
對於(int i = 0; i <2; i ++)
{
var re = rpt.ExportToStream(ExportFormatType.PortableDocFormat);
字符串名稱=“ PDF” + i +“。pdf”;
zip.AddEntry(名稱,重新);
zip.Save(MemoryStream的);
}}}

memoryStream.Seek(0,SeekOrigin.Begin); memoryStream.WriteTo(Response.OutputStream);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM