仿百度文库解决方案

梦想的初衷 提交于 2020-01-01 22:07:44

接公司需求,要实现类似百度文库的这么一个东西

关键的技术就在于文档转换为swf,及展示

网上搜了好多参考,总结出几种可实现方案:

1.Print2flash商业软件。功能非常强大,可制定性强,稳定。可直接把office、PDF等文档直接转换成带浏览框架的swf文件。唯一缺点是,收费,搜不到破解方法,有序列号,但序列号版本功能有限制,不适合通过代码实现文档转换

2.FlashPaper。同上,可以直接把office、PDF等文档直接转换成带浏览框架的swf文件。只是无法制定皮肤、水印等东西,速度慢,不稳定。

3.最后决定使用的方案是:office文档转换为PDF,再通过pdf转为swf,使用flex制作一个浏览框架swf文件。

所需环境为:

1.adobe acrobat 9。转换为pdf文件

2.office2007。将office文件转为pdf时,除了acrobat,当然office功能不可少。

3.swftools。开源工具,可将pdf文件转为SWF文件

4.vs2010开发环境,通过.net开发一个命令小工具,调用acrobat库的功能,实现命令行方式转换office,代码其实也就十来行就实现了。

 

实现步骤:

1.安装adobe acrobat 9、office2007、swftools等软件

2.使用vs2010开发命令行工具,调用acrobat的PDFMakerAPI.dll来实现转换。

3.PHP页面上传文档,在后台执行转换。在此遇到一个问题,所开发的工具如果在windows的cmd窗口中调用,可正确转换,但通过php的exec调用命令来转换,无法生成目标pdf。经分析,是PHP的权限不足。修改apache服务启动的用户,使其拥有较高的权限,转换成功。

4.swftools转换pdf为swf,注意要点,需要加-T 9 版本参数,否则生成的SWF格式将为AVM1Movie格式,在flex中通过swfloader无法控制

5.使用flex开发一个加载框架swf,该swf可自己制定外观、水印等,关键技术是通过swfloader加载内容swf,然后gotoAndStop()每一帧,将每一帧的内容移到一个容器中,这个容器就是一个页面。也就是每一帧,生成一页,然后添加到一个VGroup中,再放到一个scroller中实现滚动。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!