экспорт в PDF в цикле в отчетах Crystal - PullRequest
0 голосов
/ 06 октября 2018

Я сталкиваюсь с трудностями при создании более 1 PDF отчета Crystal, т.е. в цикле.В основном я создаю 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-файл, но когда я пытаюсьчтобы извлечь его, я выдаю ошибку No archive found (The archive is either in unknown formate or damaged). Любая помощь будет оценена.Кстати, я перешел по этой ссылке Экспорт Crystal Report в PDF в цикле работает только с первым

1 Ответ

0 голосов
/ 06 октября 2018

Использование memorystreem, если zip-файл не привязан к локальному пути.

Response.ClearContent ();Response.ClearHeaders ();
Response.ContentType = "application / zip";
Response.AppendHeader ("content-disposition", "attachment;
filename = Report.zip");

using (var memoryStream = new MemoryStream ()) {using (var archive = new ZipArchive (memoryStream, ZipArchiveMode.Create, true))
{
для (int i = 0; i <2; i ++)<br> {
var re = rpt.ExportToStream (ExportFormatType.PortableDocFormat);
string Name = "PDF" + i + ". Pdf";
zip.AddEntry (Name, re);
zip.Save (memoryStream);
}}}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...