IE не будет отображать сгенерированный PDF в браузере - PullRequest
1 голос
/ 10 августа 2011

Я пробовал много вещей, чтобы заставить это работать, если я использую

Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", newFileInfo.Name));

вместо

Response.AddHeader("Content-Disposition", string.Format("inline; filename={0}", newFileInfo.Name));

Это работает, но мне нужно, чтобы это отображалось в окне браузера для правильной работы. Встроенный вид работает правильно в Chrome. Я пытался использовать Response.BinaryWrite и Response.WriteFile, и это не имело никакого значения.

Я использую Internet Explorer 9.

Вот мой код:

    Response.Clear();
    Response.ClearHeaders();
    Response.ClearContent();

    Response.Buffer = true;

    Response.ContentType = "application/pdf";
    Response.AddHeader("Pragma", "public");
    Response.AddHeader("expires", "0");
    Response.AddHeader("Cache-Control", "no-cache");
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    string filePath = Request["file"];
    string signatureFile = Request["SignatureImage"];
    double xPos = Convert.ToDouble(Request["X-Pos"]);
    double yPos = Convert.ToDouble(Request["Y-Pos"]);
    double scale = Convert.ToDouble(Request["Scale"]);

    if (!string.IsNullOrEmpty(filePath))
    {
        try
        {                
            string newFile = PDFTools.SignPDF(filePath, signatureFile, xPos, yPos, scale, tempDirectory);
            var newFileInfo = new FileInfo(newFile);
            Response.AddHeader("Content-Disposition", string.Format("inline; filename={0}", newFileInfo.Name));
            Response.AddHeader("content-length", newFileInfo.Length.ToString());

            Response.TransmitFile(newFile);
            Response.Flush();
            Response.Close();
        }
        catch (Exception ex)
        {
            Debug.WriteLine("Error: " + ex.Message);
            Debug.WriteLine("at " + ex.StackTrace);
        }
        finally
        {
            Response.End();
        }
    }

Спасибо за ваше время!

1 Ответ

3 голосов
/ 10 августа 2011

Chrome имеет встроенную программу просмотра PDF, а Internet Explorer - нет.У вас установлен внешний просмотрщик PDF (например, Adobe Acrobat или Adobe Reader), настроенный для просмотра в Интернете?

Извините, нет представителя, не можете оставлять комментарии.

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