PDF IE 8中的PDF渲染问题以上使用ASP.Net

时间:2012-04-05 23:33:25

标签: pdf iframe

由于PDF渲染问题,我一直在拔头发并四处打我的脑袋。当我们使用IE 7&下面。但是今年我们开始支持最新的浏览器IE 8&以上,一切都很疯狂。

实际上我使用iframe来渲染内联PDF,这适用于IE7&下面但是现在使用IE8,许多用户开始抱怨PDF在iframe中显示为空白(只显示一个灰色框)。我使用以下代码在iframe中呈现pdf。

 Response.Clear();
 Response.ClearHeaders();
 Response.ClearContent();
 Response.Buffer = false;

 Response.ContentType = "application/pdf";
 Response.AddHeader("content-length", doc.Length.ToString());
 Response.AddHeader("content-disposition", "inline; filename=\"" + fileName + "\"");

 Response.AddHeader("Accept-Header", doc.Length.ToString());
 Response.BinaryWrite(doc);
 Response.Flush();
 Response.Close();
 Response.End();

但它没有正常工作。然后在谷歌搜索之后我想到使用标签来渲染pdf。所以,为此我首先创建了pdf文档并存储在服务器中。但在这种方法中我也有两个问题:

1)文件未正确创建。请参阅以下方法,我尝试使用byte []数组创建PDF文件。此外,这在我的本地完美地工作,但在服务器中它两个方法创建1 KB文件。我认为它无法写入整个byte []数组。

 a) System.IO.File.WriteAllBytes(fileFullPath, doc);
 b) using (System.IO.Stream stream = new System.IO.FileStream(fileFullPath,  System.IO.FileMode.Create))
   {
       stream.Write(attestationDoc, 0, attestationDoc.Length);
   }

2)这是我正在使用的对象标签,但问题是,只有当文件驻留在项目的根目录中时才有效,如果文件位于任何其他项目文件夹中,则它不起作用。实际上我尝试使用Server.MapPath但它无法正常工作。

 <object data="data\test.pdf" type="application/pdf" width="860px" height="470px">
        <embed src="data\test.pdf" type="application/pdf"/>
 </object>

所以,请帮助我,这很紧急。

如果上述方法中的任何一种方法有效,我很好。

0 个答案:

没有答案