在Web表单上加载大尺寸PDF需要花费太多时间

时间:2016-02-16 06:07:25

标签: asp.net pdf iframe response

我们正在尝试在网络表单上显示PDF。为此我们在Web表单上有IFrame控件,在后面的代码中,我们为另一个页面的Iframe提供了源代码,我们需要在内存流中显示数据,然后使用Response.BinaryWrite()方法将这些数据写入页面。但是这种方法在加载大尺寸PDF时花费了太多时间,例如40 MB。下面是将内存流写入页面

的代码
using ( MemoryStream mStream = myData)
                {
                    if (mStream != null)
                    {
                        Byte[] bytes = mStream.ToArray();
                        Response.ClearHeaders();
                        Response.ClearContent();
                        Response.Clear();
                        Response.Buffer = true;
                        Response.Expires = 0;
                        Response.ContentType = "Application/pdf";
                        Response.BinaryWrite(bytes);
                        Response.Buffer = true;
                        HttpContext.Current.ApplicationInstance.CompleteRequest();
                    }
                }

我们如何才能提高在网页上加载这些大型PDF的性能? 对此的任何建议都会受到关注。

1 个答案:

答案 0 :(得分:0)

如果大型PDF是多页,那么您可以尝试将其重新保存为线性化(AKA Web优化)PDF。线性化PDF的结构使得首先下载用于呈现要显示的第一页的所有信息,以便在最终用户阅读第一页时可以下载文档的其余部分。