接公司需求,要实现类似百度文库的这么一个东西
关键的技术就在于文档转换为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中实现滚动。
来源:https://www.cnblogs.com/keanuyaoo/p/3341620.html