1:工具准备 swftools.exe 下载 http://www.swftools.org/download.html? 安装至D盘 SWFTools提供了一系列将各种文件转成swf的工具: font2swf.exe? gif2swf.exe? jpeg2swf.exe? pdf2swf.exe? png2swf.exe? wav2swf.exe? 这里我们只使用pdf2swf.exe
flexpaper下载 http://code.google.com/p/flexpaper/? 这里我们使用已经编译好的FlexPaper的flash版本
2:示例语言,这里我使用的两种开发环境做示例 ?? php示例 ?? 由pdf生成swf文件
- <?php??
- ?
- ?
- ?*?
- ?*?To?change?the?template?for?this?generated?file?go?to?
- ?*?Window?-?Preferences?-?PHPeclipse?-?PHP?-?Code?Templates?
- ?*/??
- ???
- ?$dir=dirname(__FILE__)?;??
- //删除测试文件??
- ?@unlink(?$dir."test.swf"?);??
- //使用pdf2swf转换命令??
- $command=?"D:/SWFTools/pdf2swf.exe??-t?"".$dir."test.pdf"?-o??"".$dir."test.swf"?-s?flashversion=9?";??
- //创建shell对象??
- $WshShell???=?new?COM("WScript.Shell");??
- //执行cmd命令??
- $oExec??????=?$WshShell->Run("cmd?/C?".?$command,?0,?true);??
- ?>??
?java示例
<%??
- ?*/??
- ???
- ??String?path=request.getRealPath("/");??
- //使用pdf2swf转换命令??
- ?String?command=?"D:/SWFTools/pdf2swf.exe??-t?""+path+"test.pdf"?-o??""+path+"test.swf"?-s?flashversion=9?";??
- //执行cmd命令??
- ?Runtime.getRuntime().exec("cmd?/c?"+command);??
- %>??
以上是php,java将pdf转换成swf方式,那显示呢,这样我们会使用到flexpaper,以下是flexpaper的使用 ?? 使用flexpaper展现swf
<script?type="text/javascript"?src="js/swfobject/swfobject.js"></script>??
- ?<script?type="text/javascript">??
- ?????????var?swfVersionStr?=?"10.0.0";??
- ?????????var?xiSwfUrlStr?=?"playerProductInstall.swf";??
- var?flashvars?=?{??
- ???????????????SwfFile?:?escape("test.swf"),??
- ???Scale?:?0.6,??
- ???ZoomTransition?:?"eaSEOut",108); list-style:decimal-leading-zero outside; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> ???ZoomTime?:?0.5,108); list-style:decimal-leading-zero outside; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> ?????ZoomInterval?:?0.1,??
- ?????FitPageOnLoad?:?false,??
- ?????FitWidthOnLoad?:?true,108); list-style:decimal-leading-zero outside; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> ?????PrintEnabled?:? ?????FullScreenAsMaxWindow?:? ?????ProgressiveLoading?:? ?????PrintToolsVisible?:? ?????ViewModeToolsVisible?:? ?????ZoomToolsVisible?:? ?????FullScreenVisible?:? ?????NavToolsVisible?:? ?????CursorToolsVisible?:? ???SearchToolsVisible?:? ?????localeChain:?"zh_CN"??
- ???};??
- ??
- ?var?params?=?{??
- ????}??
- ?????????params.quality?=?"high";??
- ?????????params.bgcolor?=?"#ffffff";??
- ?????????params.allowscriptaccess?=?"sameDomain";??
- ?????????params.allowfullscreen?=?"true";??
- var?attributes?=?{};??
- ?????????attributes.id?=?"FlexPaperViewer";??
- ?????????attributes.name?=?"FlexPaperViewer";??
- ?????????swfobject.embedSWF(??
- ?????????????"FlexPaperViewer.swf",?"flashContent",108); list-style:decimal-leading-zero outside; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> ?????????????"650",?"500",108); list-style:decimal-leading-zero outside; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> ?????????????swfVersionStr,?xiSwfUrlStr,108); list-style:decimal-leading-zero outside; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> ?????????????flashvars,?params,?attributes);??
- swfobject.createCSS("#flashContent",?"display:block;text-align:left;");??
- ?????</script>??
- ?<body>??
- ??<div?style="position:absolute;left:10px;top:10px;">??
- ??????<div?id="flashContent">??
- ??????</div>??
- ?????</div>??
- </body>??
通过上述方式我们可以将pdf转换成相应的swf文件,并通过flexpaper显示,防止用户下载,或copy。

pdf2swf的详细参数说明,上网百度或者Google都能查到,但是注意的最好指定flashversion 为9,防止出现一些意外的错误。 pdf2swf 中并不是所有的pdf都能转换,加密的pdf pdf2swf转换不了
flexpaper 的参数详细说明请参考?http://code.google.com/p/flexpaper/wiki/Parameters
flexpaper 常用的API??http://code.google.com/p/flexpaper/wiki/API
?
?
如果出现乱码问题可能是字符集,网上有很多的相关解决方法可以查询【我没有碰到字符集堵的问题】。
还有pdf中含有图片可能转换成swf后图片不大清晰。
?
word,wps,txt等文档也可以采用该方式转换,但工具不一定为swftools
上传的flexpaper附件中已经包含flexpaper中相关文件不用重新下载,只要下载swftools,并安装。 flexpaper附件中包含了pdf2swf.jsp与pdf2swf.php两个文件及flexpaper相关的组件可以在java或php环境中运行。
?
缺少字符集产生乱码问题请参考该篇文章
http://xianglp.iteye.com/blog/849190
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|