PDF在浏览器上以文本形式出现

时间:2010-06-01 14:28:53

标签: c# asp.net pdf moss

我正在尝试将数据库(byte [])中的PDF显示给用户。

我正在使用下面的代码来呈现PDF。它给我PDF作为二进制文本,如下所示。它不是在PDF应用程序中打开,而是将PDF呈现为文本。

Response.Buffer = true;
        Response.Charset = "";
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        //Response.AddHeader("Content-Length", fileToDownload.Length.ToString());
        //Response.AddHeader("Content-Disposition", "inline; name=RemoteUserGuide.pdf");
        Response.AppendHeader("content-length", fileToDownload.Length.ToString());
        Response.ContentType = "application/pdf";
        Response.BinaryWrite(fileToDownload);
        Response.Flush();
        ////Response.Close();
        Response.End();

更新:注意,此应用程序页面正在CHROME中正确呈现PDF,但仍在IE中显示文本。 (在服务器上没有FF3来测试)。可能是它的一些浏览器问题?

任何想法? alt text http://img442.imageshack.us/img442/9242/pdfdisplay.jpg

4 个答案:

答案 0 :(得分:3)

损坏的adobe安装会这样做。在目标(客户端)计算机上重新安装Adobe Reader。

有时Adobe Installer会崩溃并执行此操作。

答案 1 :(得分:1)

如果您确定,您的浏览器可以查看pdf,那么您应该使用@PAGE ContentType="application/pdf"指令代替Response.ContentType = "application/pdf";

此外,您应该使用Response.AddHeader("content-disposition", "filename=\"document.pdf\"" );来设置文件名

答案 2 :(得分:0)

确保IIS(Internet信息服务)中.pdf扩展名的MIME类型设置为“application / pdf”。

答案 3 :(得分:0)

正如其他人所说,尝试将MIME类型/标题设置为application / pdf,如果这不起作用,最后一件事是关闭浏览器并重新打开同一页面,我之前遇到过这个问题FPDF(PDF生成)在PHP中的库),它看起来像浏览器缓存页面的MIME(php)并永远保持它,通过关闭浏览器并重新打开它,它将工作#1。