public ActionResult GetPdfWithPrintDialog(GetFileParameters parameters) { var displayName = string.IsNullOrEmpty(parameters.DisplayName) ? Path.GetFileName(parameters.Path) : Uri.EscapeDataString(parameters.DisplayName); var guid = parameters.Path; var options = new PdfFileOptions(); options.Transformations |= Transformation.Reorder; if (!string.IsNullOrEmpty(parameters.WatermarkText)) options.Watermark = Utils.GetWatermark(parameters.WatermarkText, parameters.WatermarkColor, parameters.WatermarkPosition, parameters.WatermarkWidth); if (parameters.IsPrintable) options.Transformations |= Transformation.AddPrintAction; if (parameters.SupportPageRotation) options.Transformations |= Transformation.Rotate; var response = _htmlHandler.GetPdfFile(guid, options); var contentDispositionString = new ContentDisposition { FileName = displayName, Inline = true }.ToString(); Response.AddHeader("Content-Disposition", contentDispositionString); return File(((MemoryStream)response.Stream).ToArray(), "application/pdf"); }
public ActionResult GetFile(GetFileParameters parameters) { var displayName = string.IsNullOrEmpty(parameters.DisplayName) ? Path.GetFileName(parameters.Path) : Uri.EscapeDataString(parameters.DisplayName); var guid = parameters.Path; Stream fileStream; if (parameters.GetPdf) { displayName = Path.ChangeExtension(displayName, "pdf"); var options = new PdfFileOptions(); options.Transformations |= Transformation.Reorder; if (!string.IsNullOrEmpty(parameters.WatermarkText)) options.Watermark = Utils.GetWatermark(parameters.WatermarkText, parameters.WatermarkColor, parameters.WatermarkPosition, parameters.WatermarkWidth); if (parameters.IsPrintable) options.Transformations |= Transformation.AddPrintAction; if (parameters.SupportPageRotation) options.Transformations |= Transformation.Rotate; var pdfFileResponse = _htmlHandler.GetPdfFile(guid, options); fileStream = pdfFileResponse.Stream; } else { var fileResponse = _htmlHandler.GetFile(guid); fileStream = fileResponse.Stream; } //jquery.fileDownload uses this cookie to determine that a file download has completed successfully Response.SetCookie(new HttpCookie("jqueryFileDownloadJSForGD", "true") { Path = "/" }); fileStream.Position = 0; using (var ms = new MemoryStream()) { fileStream.CopyTo(ms); return File(ms.ToArray(), "application/octet-stream", displayName); } }