2016-02-16 11 views
-1

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

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文件时的性能? 任何有关这方面的建议都会受到关注。

回答

0

如果大型PDF文件是多个页面,那么您可以尝试的一件事就是将其重新保存为线性化(也称为Web优化)PDF。线性化PDF的结构使得所有用于渲染显示第一页的信息都被首先下载,以便在最终用户正在阅读第一页时下载文档的其余部分。

相关问题