我们使用下面的代码来使用Response.BinaryWrite显示PDF文件。我们正在探索新的选择,以优化用户性能。
Response.Clear();
Response.ContentType = "application/pdf";
if (Page.Request!=null && Page.Request.Browser!=null &&
(!(Page.Request.Browser.Type.Contains("IE") || Page.Request.Browser.Type.Contains("InternetExplorer"))))
{
Response.AddHeader("Content-Length", buffer.Length.ToString());
}
Response.AddHeader("Content-Encoding", "deflate");
if (Request.Browser.Browser == "IE" && Request.Browser.MajorVersion < 7)
Response.AddHeader("Content-Disposition", "attachment; filename=document.pdf");
Response.OutputStream.Write(buffer, 0, buffer.Length);//Response.BinaryWrite(buffer);
Response.End();
Response.Flush();
Response.Close();我读到Response.outputstream.write是另一种渲染PDF的方法。使用Response.outputstream.write会有什么额外的好处吗?
发布于 2018-06-05 01:30:25
不,它不会有任何优势。BinaryWrite的代码只是在OutputStream上调用Write,就像您已经在做的那样:
public void BinaryWrite(byte[] buffer)
{
this.OutputStream.Write(buffer, 0, buffer.Length);
}使用像DotPeek这样的工具,你可以直接进入编译后的代码,看看它在做什么,,这就是我在这个例子中做的。JetBrains上的DotPeek是免费的。
这可以帮助你自己研究这些东西,而不是猜测、测试或询问。
发布于 2018-12-03 09:05:03
如果遇到渲染延迟,可以实现异步方法并使用以下代码:
var result = Response.OutputStream.BeginWrite(buffer, 0, BufferedStream.Length, null, null);
Response.OutputStream.EndWrite(result);https://stackoverflow.com/questions/50685390
复制相似问题