在ipad上打开一个大的PDF文件而不先下载它

时间:2014-01-22 20:15:36

标签: ios ipad pdf streaming pdf-generation

假设我在网络服务器上有一个400MB的PDF,我希望一个ipad用户能够打开它并尽快开始查看它,而不必先完全下载文件。有什么选择?

  • Safari能够像这样流式传输大型PDF吗?在文件仍在下载时是否可以开始显示第一页?

  • 有没有办法构建本机应用程序来实现这一目标?如果是这样,PDF应该首先在服务器上“吐出”吗?怎么样?

如何以友好的方式和在ipad上打开大型PDF的任何提示都将不胜感激。如果可以访问PDF的索引,则可以获得奖励积分!

1 个答案:

答案 0 :(得分:1)

清除问题:

  • 线性化 PDF具有重新排序的对象顺序,因此显示页面所需的所有数据都位于其他页面之前。您可以在附录F(第683页)
  • PDF specification中阅读更多详细信息

如果您还没有找到支持线性化 PDF的应用程序,从我的角度来看,最佳解决方案是在服务器端渲染页面并创建自定义协议以仅传输单个页面目录。

除非您想使用线性化 PDF创建自定义PDF查看器,否则您只需创建小型便携式“页面查看器”,即可快速显示目录,然后询问服务器的确切页码。

示例服务器接口:

class Pages
{
    string title;
    int number;
}

Stream GetDocumentPage(Page n);
List<Page> GetDocumentPages();

为此,可以使用开源解决方案(例如Ghostscript)来解析pdf文件并呈现所需的页面。然后通过您的自定义协议发送二进制数据并在您的小型便携式“页面查看器”中显示页面。

此解决方案不需要下载整个文档,因为它可能会导致大量网络流量。

希望这有帮助。