在没有先下载它的情况下在ipad上打开一个大的PDF文件
问题描述:
假设我有一个400MB的PDF,在一个web服务器上,我想让一个ipad用户能够打开它并尽快开始查看它,而不是完全下载文件。有什么选择?在没有先下载它的情况下在ipad上打开一个大的PDF文件
Safari能够流这样一个大的PDF吗?当文件仍在下载时,它可以开始显示第一页吗?
有没有办法建立一个本地应用程序来实现这一目标?如果是这样,那么PDF是否应该首先在服务器上“吐出”?怎么样?
有关如何以友好的方式和iPad上打开大型PDF的任何提示,将不胜感激。奖励积分,如果PDF的索引是可访问的!
答
要清除的东西出来:
- 线性 PDF有其重新排序对象的顺序,使所有需要的数据,以显示页面是在别人面前。您可以在附件F阅读PDF specification更多详细资料(页683)
如果你还没有找到应用程序,支持线性 PDF,从我的角度来看,最好的解决办法是在服务器端渲染页面并创建自定义协议以仅传输一个包含目录的页面。
,除非你想创建自定义的PDF查看器,线性 PDF,你只需要创建小型便携“页面查看”,它可以迅速显示表的内容,然后要求服务器确切的页码。
例服务器接口:
class Pages
{
string title;
int number;
}
Stream GetDocumentPage(Page n);
List<Page> GetDocumentPages();
对于这一点,可以使用开源解决方案(如Ghostscript)来解析pdf文件和呈现所需的页。然后通过您的自定义协议和显示页面发送二进制数据到您的小型便携式“页面查看器”。
该解决方案不需要下载整个文档,因为它可能会导致大量的网络流量。
希望这会有所帮助。
这可能听起来很愚蠢,但你可以让服务器把pdf分解成单独的pdf页面,然后在前端你可以一次下载1个,首先下载有多少页面,然后下载第一个,当它完成下载第二个,并在前端显示第一页,每隔几秒,用户将看到一个新的页面输入。 –
'* Linearized *'或'*为快速网页浏览* *而优化'正是基于这个原因引入了PDF - “在文件仍在下载时显示第一页”,但似乎只有Adobe软件(Reader和浏览器插件)利用了这个功能。 – user2846289
谢谢你们的帮助!但是,您能否提供关于每种解决方案的更多细节?例如,你将如何自动分页PDF文件逐页,并仍然能够向用户显示内容表,以便他可以针对特定页面(假设有5000页)?对于线性PDF文件,是否有文件列出支持该功能的iPad上的客户端?我看到Adobe Reader for iPad不能在ipad 1上运行,有没有其他选择?另外,只要文件开始下载,TOC是否可以访问? – electrotype