java使用SWFTools将PDF转成swf并使用flexpaper播放PDF

来源:互联网 发布:淘宝网比价插件 编辑:程序博客网 时间:2024/05/23 13:26


前导:

  1.  PDF在老版本的browser中是无法直接语言,即使新版本browser也是打开一个新窗口,对于很多个性需求无法满足,则需要将pdf转换为false播放
  2.  false直接直接使用开源的flexpaper播放引擎播放即可
  3. 关于linux系统安装SWFTools软件请参照:待更新....

1、 将PDF转换为swf文件java代码如下

windows执行转换命令方式:
  第一种:windowsD:\\Program Files (x86)\\SWFTools\\pdf2swf.exe xxx.pdf xxx.swf
  第二种:windowsD:\\Program Files (x86)\\SWFTools\\pdf2swf.exe -i xxx.pdf -o  xxx.swf

linux执行转换命令方式:
  第一种:xxx/xxx/pdf2swf  xxx.pdf xxx.swf
  第二种:xxx/xxx/pdf2swf  -i xxx.pdf -o  xxx.swf
  1. 两种执行方式输出文件,如果不存在则都会自动创建一个swf文件。Process如果不将流读取则file文件是不存在,但是程序不报错具体说明请看java代码注释
  2. 在网上查阅很多资料说需要判断windows系统和linux系统,以下写法不需要考虑系统,都能执行。所以不用针对性写代码
public boolean convert(File sourceFile, File targetFile) {try {/** * SWFTools_HOME在系统中的安装目录  * 1:window需要指定到 pdf2swf.exe 文件 * 2:linux则xxx/xxx/xxx/pdf2swf即可 */String SWFTools_HOME ="D:\\Program Files (x86)\\SWFTools\\pdf2swf.exe";String[] cmd = new String[5];cmd[0] = SWFTools_HOME;cmd[1] = "-i";cmd[2] = sourceFile.getAbsolutePath();cmd[3] = "-o";cmd[4] = targetFile.getAbsolutePath();Process pro =Runtime.getRuntime().exec(cmd);// 如果不读取流则targetFile.exists() 文件不存在,但是程序没有问题//BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(pro.getInputStream()));//while (bufferedReader.readLine() != null);pro.waitFor();pro.exitValue();} catch (Exception e) {log.error("pdf转换swf失败",e);return false;}return true;}

2、使用flexpaper播放引擎播放swf文件

           注:flexpaper依赖文件:flexpaper_handlers.jsflexpaper.js 具体文件去官网下载即可

          html页面
<div id="documentViewer" class="flexpaper_viewer" style="height:550px"></div>

        js初始化播放器
$('#documentViewer').FlexPaperViewer({ config : { SwfFile : escape(url),//swf文件通过流的方式写入到播放引擎中 Scale : 1,  ZoomTransition : 'easeOut', ZoomTime : 0.5,  ZoomInterval : 0.1, FitPageOnLoad : true, FitWidthOnLoad : false,  FullScreenAsMaxWindow : false, ProgressiveLoading : false, MinZoomSize : 0.2, MaxZoomSize : 5, SearchMatchAll : false, ViewModeToolsVisible : true, ZoomToolsVisible : true, NavToolsVisible : true, CursorToolsVisible : true, SearchToolsVisible : true, jsDirectory : 'flexpaper/js',//js的存放目录 WMode : 'window' } });





0 0
原创粉丝点击