Скачать ZIP-файл и вывести Rotativa PDF в браузер ASP.NET MVC - PullRequest
0 голосов
/ 15 декабря 2018

Я работаю над отчетом, который требует загрузки нескольких файлов PDF в один zip-файл, а также создания нового файла PDF и сохранения этого нового файла на сервере.Я использую DotNetZip и Rotativa для zip и pdf файлов.

В настоящее время у меня есть это в моих Controller:

[HttpGet]  
public ActionResult GetReport()  
{  
   var test2 = new ActionAsPdf("ContractorReportNew");
   var zip = new ZipFile();  
   zip.AddFile("MyFile.zip", "Orders");  
   string zipName = string.Format("Contractor Report{0}.zip", DateTime.Now.ToString("dd-MMM-yyyy-HH:mm:ss"));
   using (MemoryStream memoryStream = new MemoryStream())
   {
     zip.Save(memoryStream);
     return File(memoryStream.ToArray(), "application/zip", zipName);
   }
}  

И

[HttpGet]
public ActionResult ContractorReportNew()  
{  
   //Data from DB  
   var test = new ViewAsPdf("Contractor_report")
   {
      MinimumFontSize = 14,
      PageOrientation = Rotativa.Options.Orientation.Landscape,
      PageSize = Rotativa.Options.Size.A4,
   };

     var abc = test.BuildFile(this.ControllerContext);
     System.IO.File.WriteAllBytes(path, abc);
     MemoryStream ms = new MemoryStream(abc);
     return new FileStreamResult(ms, "application/pdf");
}

Как я могу достичь того, что мне нужно?
Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 17 декабря 2018

Мне удалось заставить его работать, используя этот пример.
Теперь у меня есть это в моем коде:

@Html.ActionLink("Test Me", "Contractor_report", "Admin", new { @contractor_id = 1 }, new { @onclick = "TestFunction()" })  

, а затем:

function TestFunction() {
  window.open('@Url.Action("ContractorReportNew", "Admin")')
}
...