`
josico
  • 浏览: 43012 次
社区版块
存档分类
最新评论

pdf转swf 实现类似百度文库功能

    博客分类:
  • java
阅读更多

上一篇文章说的是word,ppt,excel转pdf。其实和这次pdf转swf是一个项目里面的,只不过我分了2步来说

pdf转成swf需要用到的工具是SWFTools,里面有一个exe文件叫pdf2swf,就是我们之后要调的工具

里面还有一个叫做rfxview.swf的文件,是我们嵌套进去的swf模版

嵌套模板了之后,得到的swf不仅有我们所需要最核心的文件内容,还有swf模版上的翻页、全屏、变大变小等,和百度文库差不多。不过我觉得没有百度文库的好看,找了很长时间也没找到好的模板。。。

下载地址

http://115.com/file/dpu1pevd

 

上code咯

核心代码 pdf2swf.java

package com.maze.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;


public class Pdf2Swf {
	
	//工具文件夹路径
	public static String SWFTOOLS_PATH="D:/SWFTools/";
	//播放器模板路径
	public static String RFXVIEW_SWF_PATH="D:/SWFTools/rfxview.swf";
	
	public static int convertPDF2SWF(String sourcePath, String destPath, String fileName) throws IOException{


		File dest = new File(destPath);     
        if (!dest.exists()) {     
            dest.mkdirs();     
        }     
    
        File source = new File(sourcePath);     
        if (!source.exists()) {     
            return -1;     
        }     
        //pdf转成swf
        String[] envp = new String[1];     
        envp[0] = "PATH="+SWFTOOLS_PATH;     
        String command = "cmd /c \""+SWFTOOLS_PATH+"pdf2swf\" -z -s flashversion=9 " + sourcePath + " -o " + destPath + fileName ;     
        Process pro = Runtime.getRuntime().exec(command, envp);     
         
        BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(pro.getInputStream()));     
        while (bufferedReader.readLine() != null) {     
        }    
        try {     
            pro.waitFor();     
        } catch (InterruptedException e) {     
            e.printStackTrace();     
        }     
        //套用播放器
        command = "cmd /c \""+SWFTOOLS_PATH+"swfcombine\" "+RFXVIEW_SWF_PATH+" viewport=" + destPath + fileName + " -o " + destPath +fileName;     
        pro = Runtime.getRuntime().exec(command, envp);
        bufferedReader = new BufferedReader(new InputStreamReader(pro.getInputStream()));     
        try {     
            pro.waitFor();     
        } catch (InterruptedException e) {     
            e.printStackTrace();     
        }     
        return pro.exitValue();
	}
}

 

 

测试代码test.java

 

 

package com.maze.main;
import java.io.IOException;
import com.maze.util.Pdf2Swf;
public class Test {

	public static void main(String[] args) throws IOException {
		String sourcePath = "d:\\java.pdf";     
        	String destPath = "d:\\";     
        	String fileName = "test.swf";     
       		Pdf2Swf.convertPDF2SWF(sourcePath,destPath, fileName);
	}

}

 

 

 

 

分享到:
评论
1 楼 王小蛙 2012-07-06  
楼主写得好啊~~~  顶啊~~~

相关推荐

Global site tag (gtag.js) - Google Analytics