如何在完全下载之前将pdf显示在Web浏览器中

时间:2008-11-18 14:10:27

标签: pdf iis-6

我有一个客户端一直在努力在网络上缓慢加载pdf文件。 我的客户端有一些非常大的pdf文件,几乎是10 Mb。他们花了3-4分钟下载。在加载整个文件之前,文件不会显示。 我们和他们已经看到了pdf一次加载一个页面的其他站点,因此最终用户可以开始查看该文件,因为页面的其余部分仍然在后台加载。给出了页面加载速度更快的错觉。

根据他们看到的文档,如果使用“针对快速Web查看优化”创建的pdf文件,IIS 6应自动执行此操作。它被检查,文件仍然不会一次加载页面。

他们已经搜索过,如果文件保存得当,IIS会自动执行此操作。

他们如何“流式传输”PDF格式?这是因为pdf是以特殊方式保存的吗?这是一个处理下载的java脚本吗?或者是否需要在IIS中进行更改?

由于

更新: 该文件开头如下:

%PDF-1.4
%âãÏÓ
171 0 obj << 0/Linearized 1

线性化?

未从aspx / asp页面提供PDF文档。 (它只是直接发布到网站并链接到)。

5 个答案:

答案 0 :(得分:1)

是否可以使用第三方服务,例如Scribd?如果你走这条路,你可以将他们的流媒体查看器嵌入到你客户的网站上。只是一个想法,虽然我知道它并不适合所有类型的业务。

答案 1 :(得分:1)

如果您从aspx页面提供PDF,可能会发生这种情况,以获得线性化的字节服务pdf需要直接提供页面,或者您需要从aspx代码提供字节服务。

答案 2 :(得分:1)

您需要对PDF进行线性化,而不是信任IIS为您执行此操作。

有很多应用可以帮到您。我使用过CVision(他们的压缩是首屈一指的,但许可和SDK都很痛苦),还有一些更便宜的替代品here,但我不知道它们的工作情况。

澄清托尼的观点...(我认为)

如果您实际使用过这些工具且pdf已线性化,请尝试将PDF转换为字节数组,并将Response.Write()字节数组(带内容标题等)转换为客户端(在新的浏览器窗口中或帧)

答案 3 :(得分:1)

保存其中一个文件并在文本编辑器中将其打开。如果你没有看到像

这样的东西
<< /Linearized 1.0 /L <number> /H [<number> <number>] /O <number> /E <number> ...

在前几百字节左右,那么你就没有得到一个线性化的(即快速网络)PDF。

答案 4 :(得分:1)

首先,文件需要“线性化”,正如其他人所解释的那样;您可以在Acrobat中线性化它或使用Ghostscript中的pdfopt。其次,Web服务器必须能够提供字节范围(即支持Range标头);我不知道如何为此配置IIS,但即使文档是线性化的,客户端也必须能够读取特定的字节范围。