【问题标题】:progressive pdf download渐进式pdf下载
【发布时间】:2012-01-19 15:39:51
【问题描述】:

我想在 iPad 应用程序中逐步下载 pdf 文件。我不知道该怎么做,谷歌也不是很有帮助。谁能帮我理解这里的概念。我打算渲染核心图形。 谢谢。

【问题讨论】:

    标签: objective-c ipad pdf core-graphics


    【解决方案1】:

    您的意思是要在下载完成之前渲染 pdf 页面?如果是:

    首先,PDF 格式最初并不是为此而设计的。

    让我解释一下。 PDF 文件由许多对象和外部参照组成。外部参照是一个表,其中包含文件中每个对象的位置(以字节为单位),因此对象可能位于文件中的随机位置。更糟糕的是,外部参照本身位于文件末尾,因此在下载文件之前,您无法在文件中找到任何对象。

    因此,PDF 是为随机访问而设计的。实际上,HTTP 协议是允许的,所以如果你真的需要它,你可以尝试实现它:)

    给您的好消息:从 PDF-1.2 开始,有一个称为“线性化 PDF”的特殊功能。它专为您的任务而设计,因此您可以在下载下一个页面之前呈现第一页。您可以在 Google 周围搜索或查看 pdf 参考以了解更多详细信息。最重要的是:你必须使用特殊工具对pdf文件进行线性化,所以并不是每个pdf文件都可以逐步渲染。

    你的坏消息:看起来核心图形不支持。我实际上并没有尝试过,但我在核心图形文档中没有发现任何重新线性化的 pdf。 (如果您能找到任何东西,请告诉我。)因此您可能需要手动渲染 PDF。

    【讨论】:

    • 感谢您的回答。是的,我想在下载其他页面时呈现下载的页面。我会看看线性化的PDF
    【解决方案2】:

    不完全确定是否适用于 iPad,但在 Acrobat 中执行另存为... 默认情况下,它将优化为快速 Web 视图,允许一次下载一个页面而不是一次下载整个文档。

    http://www.adobe.com/designcenter-archive/acrobat/articles/acr6optimize/acr6optimize.pdf

    【讨论】:

      【解决方案3】:

      Linearzied PDF 将满足您的需求。您需要有能力的阅读器,例如 Adob​​e 的阅读器才能使用此功能。

      【讨论】:

      • 不,Sherwood Hu -- 要使用此功能,您需要的不仅仅是一个有能力的读者。您首先需要 线性化 PDF。此外,您需要一个支持以任意块(HTTP-1.1 中的“字节范围”)传送内容的 Web 服务器。现在大多数现代 Web 服务器都支持这一点。然而,所有现实世界的 PDF 中只有很小一部分是线性的。如果 OP 计划的应用程序不是专为自制 PDF 设计的,那么他只能对那些偶然已经线性化的下载 PDF 感到满意....
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-24
      • 2011-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-30
      相关资源
      最近更新 更多