PDF没有在Chrome中保存但在FireFox中保存

时间:2014-06-20 07:49:21

标签: c# asp.net-mvc itextsharp

我现在陷入困境的情况是,我正在使用 iTextSharp 生成 PDF ,但是当它在新浏览器中打开TAB 时它提供了打印,保存,放大,缩小等选项。

除了SAVE之外,所有其他默认功能(如打印,缩放)都正常工作。当我点击保存按钮时,保存文件。我尝试使用 CTRL + S 但结果是一样的。

这是我的代码:

public override void ExecuteResult(ControllerContext context)
        {
            IView viewEngineResult;
            ViewContext viewContext;

            if (ViewName == null)
            {
                ViewName = context.RouteData.GetRequiredString("action");
            }

            context.Controller.ViewData.Model = Model;

            if (context.HttpContext.Request.QueryString["html"] != null &&
                context.HttpContext.Request.QueryString["html"].ToLower().Equals("true"))
            {
                viewEngineResult = ViewEngines.Engines.FindView(context, ViewName, null).View;
                viewContext = new ViewContext(context, viewEngineResult, context.Controller.ViewData,
                    context.Controller.TempData, context.HttpContext.Response.Output);
                viewEngineResult.Render(viewContext, context.HttpContext.Response.Output);
            }
            else
            {
                var workStream = new MemoryStream();
                var document = new Document();

                PdfWriter writer = PdfWriter.GetInstance(document, workStream);
                writer.CloseStream = false;

                document.Open();

                viewEngineResult = ViewEngines.Engines.FindView(context, ViewName, null).View;
                var sb = new StringBuilder();
                TextWriter tr = new StringWriter(sb);

                viewContext = new ViewContext(context, viewEngineResult, context.Controller.ViewData,
                    context.Controller.TempData, tr);
                viewEngineResult.Render(viewContext, tr);
                Stream stream = new MemoryStream(Encoding.UTF8.GetBytes(sb.ToString()));

                XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, stream, null);

                document.Close();                           

                new FileContentResult(workStream.ToArray(), "application/pdf").ExecuteResult(context);
            }

自从过去1小时以来,我一直被困在这个问题中。帮帮我们。

由于

0 个答案:

没有答案