我们正在尝试在网络表单上显示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的性能? 对此的任何建议都会受到关注。
答案 0 :(得分:0)
如果大型PDF是多页,那么您可以尝试将其重新保存为线性化(AKA Web优化)PDF。线性化PDF的结构使得首先下载用于呈现要显示的第一页的所有信息,以便在最终用户阅读第一页时可以下载文档的其余部分。