C# IHttpHandler Response.ContentType=";申请表/pdf";闯入IE8
这可以在Chrome和Firefox中使用,但IE8没有显示任何内容。。。 当我在webforms按钮中尝试相同的代码时,单击它在所有三种浏览器上都有效 如何在IE8中实现这一点C# IHttpHandler Response.ContentType=";申请表/pdf";闯入IE8,c#,asp.net,pdf,content-type,C#,Asp.net,Pdf,Content Type,这可以在Chrome和Firefox中使用,但IE8没有显示任何内容。。。 当我在webforms按钮中尝试相同的代码时,单击它在所有三种浏览器上都有效 如何在IE8中实现这一点 public class ShowPDF : IHttpHandler { public void ProcessRequest(HttpContext context) { // create PDF document var document = new PdfDocume
public class ShowPDF : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
// create PDF document
var document = new PdfDocument();
var page = document.AddPage();
var font = new XFont("Verdana", 20, XFontStyle.Bold);
var gfx = XGraphics.FromPdfPage(page);
gfx.DrawString("Hello, World!", font
, PdfSharp.Drawing.XBrushes.Black
, new PdfSharp.Drawing.XRect(0, 0, page.Width, page.Height)
, PdfSharp.Drawing.XStringFormats.Center
);
// Send PDF to browser
var stream = new System.IO.MemoryStream();
document.Save(stream, false);
context.Response.Clear();
context.Response.ContentType = "application/pdf";
context.Response.AddHeader("content-length", stream.Length.ToString());
context.Response.BinaryWrite(stream.ToArray());
context.Response.Flush();
stream.Close();
context.Response.End();
}
public bool IsReusable
{
get
{
return false;
}
}
}
解决了!这取决于浏览器配置 @BrianRogers-感谢您测试此功能。我尝试了“window.location.href='ShowPDF.ashx';”,正如您所做的那样,IE8显示了一个空白页面。这使我怀疑我的浏览器配置。我卸载了Foxit Reader并安装了Adobe Reader。现在一切正常
令人困惑的是,当我在一个aspx服务器端的按钮点击中显示pdf的代码时,IE8显示的pdf很好!算了吧!出于这个原因,我之前没有质疑我的浏览器配置。如果代码与FF和Chrome一起工作,那么问题很可能是应用程序/pdf mime类型未在IE中注册。你能从IE访问其他pdf链接吗?是的,当我将其放入aspx按钮单击中时,它在IE8中工作正常。当我把它放入页面加载时,它什么也不显示。你说的“放入页面加载”是什么意思?你能给我们看看你放在那里的代码片段吗?我尝试了上面的代码(没有PdfSharp组件,所以我替换了一个实际的PDF,并将其加载到MemoryStream中),它在WindowsXP上的IE8中运行良好。我从表单上的按钮触发下载,onclick执行“window.location.href='ShowPDF.ashx'