下载 ZIP 文件并在浏览器中输出 Rotativa PDF ASP.NET MVC
Download ZIP file and output Rotativa PDF in browser ASP.NET MVC
我正在处理一份报告,该报告需要将多个 PDF 文件下载到一个 zip 文件中,并创建一个新的 PDF 文件并将新创建的文件也保存在服务器上。我对 zip 和 pdf 文件使用 DotNetZip
和 Rotativa
。
目前我的 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");
}
我怎样才能达到我所需要的?
任何帮助将不胜感激。
我设法通过使用 this 示例让它工作。
现在我的代码中有这个:
@Html.ActionLink("Test Me", "Contractor_report", "Admin", new { @contractor_id = 1 }, new { @onclick = "TestFunction()" })
然后:
function TestFunction() {
window.open('@Url.Action("ContractorReportNew", "Admin")')
}
我正在处理一份报告,该报告需要将多个 PDF 文件下载到一个 zip 文件中,并创建一个新的 PDF 文件并将新创建的文件也保存在服务器上。我对 zip 和 pdf 文件使用 DotNetZip
和 Rotativa
。
目前我的 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");
}
我怎样才能达到我所需要的?
任何帮助将不胜感激。
我设法通过使用 this 示例让它工作。
现在我的代码中有这个:
@Html.ActionLink("Test Me", "Contractor_report", "Admin", new { @contractor_id = 1 }, new { @onclick = "TestFunction()" })
然后:
function TestFunction() {
window.open('@Url.Action("ContractorReportNew", "Admin")')
}