OpooPages
2015-07-30 17:53:02 +08:00
在WEB应用提供文档在线阅读功能通常有以下两个目的:
1. 方便阅读。最终用户不需要下载后才能阅读,也不需要安装阅读软件(Microsoft Office, Adobe Reader等)即可阅读文件内容
2. 文档保护。只允许阅读,不允许打印和下载。
以前做类似功能时,专门做了一些研究,研究的对象包括百度文库、豆丁、Google Docs Viewer、 DocVerse(被Google收购)、Scribd、OPEN文档、BOOKFM等(有些是不是还活着没留意)。
这些产品基本上支持以下一些格式的在线阅读(不尽相同):
Microsoft Word(.DOC 和 .DOCX)
Microsoft Excel(.XLS 和 .XLSX)
Microsoft PowerPoint(.PPT 和 .PPTX)
Adobe 便携式文档格式 (.pdf)
Text (.txt)
OpenDocument (.odf)
以上研究对象可分为两类:
1. 将原始文档转成图片(JPEG,PNG等),在浏览器中展示;
将原始文件通过一系列过程最终转换成多个图片文件,原始文件中的每一页对应一个图片文件,然后通过HTML结合JavaScript设计一个阅读器(也可以通过Flex设计阅读器),根据用户操作动态加载图片进行展示。Google Docs Viewer、Bookfm 属于这类产品。
Google Docs Viewer有强大的硬件支持和技术,放大缩小时都重新从后台加载不同尺寸的图片,所以放大到一定程度也不会需,小图快速浏览时不会加载小尺寸图提高速度。而且选择区域后从后台提取文字到剪贴板,很牛。
2. 将原始文档转成Flash文件(SWF),在浏览器中展示。
将原始文件通过一系列过程最终转换成一个或者多个swf文件。转成单个SWF时,原始文件中的每一页对应swf文件中的每一帧;转成多个SWF时,每个SWF文件只有一帧,对应原始文件中的一页。然后通过SWF的阅读器(例如FlexPaper)展示。Scribd, DocVerse, 百度文库,豆丁属于这类产品。
百度文库还略有不同,它将原始文件分成了N个部分,每个部分大约是5页,然后转成了N个SWF,也就是说每个SWF中都包含了大约5页的内容,然后在网页通过一定的手段一次读取大约5页的内容。具体参考百度文库章节。
(哦,再次强调,这是几年前研究的情况,目前可能已经不同,毕竟技术日新月异)