FlexPaper是一个被设计用来与PDF2SWF一起使用,开源轻量级的在浏览器上显示各种文档的组件, 使在Flex中显示PDF成为可能,而这个过程并无需PDF软件环境的支持。它可以被当做Flex的库来使用。也可以通过将一些例如Word、PPT等文档转成PDF,然后实现在线浏览。
一. 使用PDF2SWF转化你的pdf文件
首先要将PDF转成SWF,这步可以使用开源的SwfTools自动完成
1.到http://www.swftools.org/download.html下载安装 SwfTools,当前最新版本是0.9.1
2.转换PDF到SWF,可以通过命令行的方式,例如将Paper3.pdf转换成Paper3.swf
C:/SWFTools/pdf2swf Paper3.pdf -o Paper3.swf
我写了一个方法,可以利用JAVA转化pdf为swf。
- /**
- * 将pdf文件转化成swf文件
- * @param fileName 文件的绝对路径
- * @param destPath 目标路径
- * @return -1:源文件不存在,-2:格式不正确,-3:发生异常,0:转化成功
- * @author fanglm created on Jul 9, 2010 1:13:04 PM
- */
- public static int ConvertPdfToSwf(String fileName,String destPath){
- String destName = "",fileExt = "";
- StringBuffer command = new StringBuffer();
- fileExt = fileName.split("//.")[fileName.split("//.").length-1].toLowerCase();
- try{
- File file = new File(fileName);
- if(!file.exists()){//判断源文件是否存在
- return -1;
- }else if(!fileExt.equals("pdf")){//判断文件是否是pdf格式的文件
- return -2;
- }
- else{
- String swftoolsPath = "D://SWFTools";//获取pdf转swf工具的路径
- if(!swftoolsPath.substring(swftoolsPath.length()-1, swftoolsPath.length()).equals("//")){
- swftoolsPath = swftoolsPath+"//"; //在目录后加 "/"
- }
- if(!destPath.substring(destPath.length()-1, destPath.length()).equals("//")){
- destPath = destPath+"//"; //在目录后加 "/"
- }
- File destFile = new File(destPath);
- if(!destFile.exists()){//目标文件路径如果不存在,则创建目录
- destFile.mkdirs();
- }
- destName = file.getName().substring(0, file.getName().length()-4)+".swf";//目标文件名称
- command.append(swftoolsPath).append("pdf2swf.exe ").append(fileName).append(" -o ").append(destPath).append(destName);
- Process pro = Runtime.getRuntime().exec(command.toString());
- BufferedReader buffer = new BufferedReader(new InputStreamReader(pro.getInputStream()));
- while(buffer.readLine()!=null);
- return pro.exitValue();
- }
- }catch (Exception e){
- e.printStackTrace();
- return -3;
- }
- }
二. 使用已经编译好的FlexPaper的flash版本浏览你的文档
下载并解压FlexPaper-flash版本的zip文件,将解压出的文件放到你的项目下面,如tomcat的webapps目录下,并用转化后生成的swf文件替换原有的paper.swf文件,或者修改FlexPaperViewer.html中的paper.swf文件为你生成的swf文件,重新发布项目即可。
如此,便可在线浏览pdf文件,再也不用安装pdf阅读器了。