最近要实现类似百度文库在线查看文档的功能,查阅了很多资料,最终觉得FlexPaper+SWFTools 实现比较好,
FlexPaper是一个开源轻量级的在浏览器上显示各种文档的组件,被设计用来与PDF2SWF一起使用, 使在Flex中显示PDF成为可能,
而这个过程并无需PDF软件环境的支持。它可以被当做Flex的库来使用。
另外你也可以通过将一些例如Word、PPT等文档转成PDF(一般我选择用OpenOffice.http://download.openoffice.org/index.html),然后实现在线浏览。
一. 使用PDF2SWF准备好你的文档
首先要将PDF转成SWF,这步可以使用开源的SwfTools自动完成
1.下载安装 SwfTools,当前最新版本是0.9(Pdf2swf工具下载:下载 (我下的是swftools-2011-01-23-1815.exe下载后,安装))
2. 转换PDF到SWF,可以通过命令行的方式,例如将Paper3.pdf转换成Paper3.swf
C:\SWFTools\pdf2swf Paper3.pdf -o Paper3.swf
二. 使用已经编译好的FlexPaper的flash版本浏览你的文档
- 下载并解压出已经编译好的FlexPaper
(Flexpaper下载地址:下载(我下的是1.4.5 Flash Version(release notes))),运行官方例子的时起,连所带的Paper.swf都不能加载成功,只见到右上角的圈圈一直在动,处于等待的状态。这种情况,是由于Flexpaper还没获得Adobe Flash的信任,这时你可以前住http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065为FlexPaper添加信任.进入网页之后 ,点击左边的 Global Security Settings papel 这个选项.为你的例子所在的文件夹添加信任,就ok了!
-
zip文件包含一个例子文件叫做FlexPaperViewer.html,它向你展示了需要传给FlexPaper的 基本参数
var params = {
SwfFile : "Paper.swf",
Scale : 0.6
}
swfobject.embedSWF("FlexPaperViewer.swf","cb","500","500","9.0.0","js/swfobject/expressInstall.swf", params);
//SwfFile参数是你想显示的文件,Scale是0-1之间的数,表示显示的放大参数 - 复制你创建出来的swf和PDF2SWF到解压缩出的相同目录
- 确定你添加了FlexPaperViewer.swf
三. 在Flex中使用FlexPaper
1. 下载FlexPaper SWC,添加到你的Flex项目libs中
2. 复制你用PDF2SWF创建的SWF到你的bin-debug目录,如Paper3.swf,添加FlexPaper组 件到你的flex代码中Xml代码
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
width="800" height="500"
xmlns:flexpaper="com.devaldi.controls.flexpaper.*">
<flexpaper:FlexPaperViewer width="800" height="500"
Scale="1" SwfFile="Paper3.swf" />
</mx:Application>
并且看到了很多牛人的文章,这里就有一篇很好的,就不转载了,放个地址,方便自己和别人去查阅:
http://www.cnblogs.com/qinpeifeng107/archive/2011/08/29/2158879.html