代码之家  ›  专栏  ›  技术社区  ›  Booji Boy

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

  •  3
  • Booji Boy  · 技术社区  · 17 年前

    我的客户机有一些非常大的pdf文件,几乎有10MB。下载它们最多需要3-4分钟。在加载整个文件之前,不会显示这些文件。

    根据他们看到的文档,如果在创建pdf文件时选中了Optimized for fast web view,则IIS 6应自动执行此操作。如果选中该选项,该文件仍然不会一次加载一个页面。

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

    谢谢

    更新:

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

    5 回复  |  直到 17 年前
        1
  •  1
  •   Marc Charbonneau    17 年前

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

        2
  •  1
  •   Tony Edgecombe Tony Edgecombe    17 年前

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

        3
  •  1
  •   StingyJack    17 年前

    有很多应用程序可以帮你做到这一点。我使用过CVision(他们的压缩是首屈一指的,但是许可和SDK是一个难题),还有一些更便宜的替代方案 here ,但我不知道它们的效果如何。

    为了澄清托尼的观点。。。(我想)

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

        4
  •  1
  •   plinth    17 年前

    保存其中一个文件并在文本编辑器中打开它。如果你没有看到类似的东西

    << /Linearized 1.0 /L <number> /H [<number> <number>] /O <number> /E <number> ...
    

    在最初的几百字节左右,你就不会得到一个线性化的(即,快速网络)PDF。

        5
  •  1
  •   Jouni K. Seppänen    17 年前

    Ghostscript . 其次,web服务器必须能够服务字节范围(即,支持范围标头);我不知道如何为此配置IIS,但即使文档被线性化,客户端也必须能够读取特定的字节范围。