【发布时间】:2012-01-19 15:39:51
【问题描述】:
我想在 iPad 应用程序中逐步下载 pdf 文件。我不知道该怎么做,谷歌也不是很有帮助。谁能帮我理解这里的概念。我打算渲染核心图形。 谢谢。
【问题讨论】:
标签: objective-c ipad pdf core-graphics
我想在 iPad 应用程序中逐步下载 pdf 文件。我不知道该怎么做,谷歌也不是很有帮助。谁能帮我理解这里的概念。我打算渲染核心图形。 谢谢。
【问题讨论】:
标签: objective-c ipad pdf core-graphics
您的意思是要在下载完成之前渲染 pdf 页面?如果是:
首先,PDF 格式最初并不是为此而设计的。
让我解释一下。 PDF 文件由许多对象和外部参照组成。外部参照是一个表,其中包含文件中每个对象的位置(以字节为单位),因此对象可能位于文件中的随机位置。更糟糕的是,外部参照本身位于文件末尾,因此在下载文件之前,您无法在文件中找到任何对象。
因此,PDF 是为随机访问而设计的。实际上,HTTP 协议是允许的,所以如果你真的需要它,你可以尝试实现它:)
给您的好消息:从 PDF-1.2 开始,有一个称为“线性化 PDF”的特殊功能。它专为您的任务而设计,因此您可以在下载下一个页面之前呈现第一页。您可以在 Google 周围搜索或查看 pdf 参考以了解更多详细信息。最重要的是:你必须使用特殊工具对pdf文件进行线性化,所以并不是每个pdf文件都可以逐步渲染。
你的坏消息:看起来核心图形不支持。我实际上并没有尝试过,但我在核心图形文档中没有发现任何重新线性化的 pdf。 (如果您能找到任何东西,请告诉我。)因此您可能需要手动渲染 PDF。
【讨论】:
不完全确定是否适用于 iPad,但在 Acrobat 中执行另存为... 默认情况下,它将优化为快速 Web 视图,允许一次下载一个页面而不是一次下载整个文档。
http://www.adobe.com/designcenter-archive/acrobat/articles/acr6optimize/acr6optimize.pdf
【讨论】:
Linearzied PDF 将满足您的需求。您需要有能力的阅读器,例如 Adobe 的阅读器才能使用此功能。
【讨论】: