1 /**

2 *3 */

4 packagecom.b510.pdf2swf;5

6 importjava.io.BufferedReader;7 importjava.io.File;8 importjava.io.IOException;9 importjava.io.InputStream;10 importjava.io.InputStreamReader;11 importjava.util.Date;12

13 /**

14 * PDF转SWF工具15 *16 * @date 2012-11-517 *@authorxhw18 *19 */

20 public classPDF2SWF {21

22 /**

23 * SWTOOLS的安装路径,我的SWFTools安装目录为:"C:/Program Files (x86)/SWFTools"24 */

25 public static final String SWFTOOLS_PATH = "C:/Program Files (x86)/SWFTools";26 /**

27 * pdf文件后缀名28 */

29 public static final String FILE_NAME_OF_PDF = "pdf";30 /**

31 * swf文件后缀名32 */

33 public static final String FILE_NAME_OF_SWF = "swf";34

35 /**

36 * 获得文件的路径37 *38 *@paramfile39 * 文件的路径 ,如:"c:/test/test.swf"40 *@return文件的路径41 */

42 public staticString getFilePath(String file) {43 String result = file.substring(0, file.lastIndexOf("/"));44 if (file.substring(2, 3) == "/") {45 result = file.substring(0, file.lastIndexOf("/"));46 } else if (file.substring(2, 3) == "\\") {47 result = file.substring(0, file.lastIndexOf("\\"));48 }49 returnresult;50 }51

52 /**

53 * 新建一个目录54 *55 *@paramfolderPath56 * 新建目录的路径 如:"c:\\newFolder"57 */

58 public static voidnewFolder(String folderPath) {59 try{60 File myFolderPath = newFile(folderPath.toString());61 if (!myFolderPath.exists()) {62 myFolderPath.mkdir();63 }64 } catch(Exception e) {65 System.out.println("新建目录操作出错");66 e.printStackTrace();67 }68 }69

70 /**

71 * the exit value of the subprocess represented by this Process object. By72 * convention, the value 0 indicates normal termination.73 *74 *@paramsourcePath75 * pdf文件路径 ,如:"c:/hello.pdf"76 *@paramdestPath77 * swf文件路径,如:"c:/test/test.swf"78 *@return正常情况下返回:0,失败情况返回:179 *@throwsIOException80 */

81 public static int convertPDF2SWF(String sourcePath, String destPath) throwsIOException {82 //如果目标文件的路径是新的,则新建路径

83 newFolder(getFilePath(destPath));84

85 //源文件不存在则返回

86 File source = newFile(sourcePath);87 if (!source.exists()) {88 return 0;89 }90

91 //调用pdf2swf命令进行转换

92 String command = SWFTOOLS_PATH + "/pdf2swf.exe -t \"" + sourcePath + "\" -o \"" + destPath + "\" -s flashversion=9 -s languagedir=D:\\xpdf\\xpdf-chinese-simplified ";93 System.out.println("命令操作:" + command + "\n开始转换...");94 //调用外部程序

95 Process process =Runtime.getRuntime().exec(command);96 final InputStream is1 =process.getInputStream();97 new Thread(newRunnable() {98 public voidrun() {99 BufferedReader br = new BufferedReader(newInputStreamReader(is1));100 try{101 while (br.readLine() != null)102 ;103 } catch(IOException e) {104 e.printStackTrace();105 }106 }107 }).start(); //启动单独的线程来清空process.getInputStream()的缓冲区

108 InputStream is2 =process.getErrorStream();109 BufferedReader br2 = new BufferedReader(newInputStreamReader(is2));110 //保存输出结果流

111 StringBuilder buf = newStringBuilder();112 String line = null;113 while ((line = br2.readLine()) != null)114 //循环等待ffmpeg进程结束

115 buf.append(line);116 while (br2.readLine() != null)117 ;118 try{119 process.waitFor();120 } catch(InterruptedException e) {121 e.printStackTrace();122 }123 System.out.println("转换结束...");124 returnprocess.exitValue();125 }126

127 /**

128 * pdf文件转换为swf文件操作129 *130 *@paramsourcePath131 * pdf文件路径 ,如:"c:/hello.pdf"132 *@paramdestPath133 * swf文件路径,如:"c:/test/test.swf"134 */

135 public static voidpdf2swf(String sourcePath, String destPath) {136 long begin_time = newDate().getTime();137 try{138 PDF2SWF.convertPDF2SWF(sourcePath, destPath);139 } catch(Exception ex) {140 System.out.println("转换过程失败!!");141 }142 long end_time = newDate().getTime();143 System.out.println("转换共耗时 :[" + (end_time - begin_time) + "]ms");144 System.out.println("转换文件成功!!");145 }146

147 public static void main(String[] args) throwsIOException {148 String sourcePath = "e:/test_1352107155307." +FILE_NAME_OF_PDF;149 String destPath = "e:/hello/test_1352107155307_" + new Date().getTime() + "." +FILE_NAME_OF_SWF;150 pdf2swf(sourcePath, destPath);151 }152 }

java 仿百度文库源码_java开发_模仿百度文库_SWFTools_源码下载相关推荐

  1. java 仿百度文库源码_java开发_模仿百度文库_OpenOffice2PDF_源码下载

    这几天在研究模仿着做类似于百度文库的东西,在这里给大家分享一下我自己做的东西. 由于需要做这样的项目,我查阅了很多资料,最后选定一下方案去做: Txt/Word/Excel/PPT=>PDF(O ...

  2. 来了超火爆的Java游戏羊了个羊_java开发游戏项目

    <羊了个羊>是一款网络上的卡通背景消除闯关游戏,游戏利用各种道具和提示来消除每一个关卡当中的障碍和陷阱. 游戏规则 羊了个羊在游戏下方共有7个槽位,玩家只要把3个相同方块点到槽位中就会消除 ...

  3. java开发利器 源码_Java开发的利器: 反编译工具 JD-GUI

    老赵说起来也能算个Java程序员,可是写过的Java代码并不多,可老赵实实在在是从程序员干起的.虽然肚子里也装了不少的东西,可作为一件乐此不疲的事情,就是看那些所谓"高人"的代码. ...

  4. java类似金山打字的键盘模拟_java实现 swing模仿金山打字 案例源码

    java实现 swing模仿金山打字 案例源码,更多Java技术就去Java教程网.http://java.662p.com 代码: import Java.awt.Color; import jav ...

  5. python wms系统源码_java开发的wms仓库管理系统源码(PC+Android)

    一.项目简介: Ideer-wms是由灵鹿谷科技主导的开源项目,WMS在经过多家公司上线运行后,为了降低物流仓储企业的信息化成本,决定全面开源 此产品.针对有特殊信息化需求的企业,提供高性价比的实施服 ...

  6. Java仿腾讯视频流媒体点播网站开发实战

    为了调动广大爱好者的学习动力,先看一下成品效果图,以便于您对于本网站有一个更好的认识. 1.首页效果图 首页主要包含登陆,注册,捐助,以及播放工具下载功能.整体布局使用轮播图以及简单的流式布局.整体给 ...

  7. 【尚学堂】超火爆的Java游戏羊了个羊_java开发游戏项目

    <羊了个羊>是一款网络上的卡通背景消除闯关游戏,游戏利用各种道具和提示来消除每一个关卡当中的障碍和陷阱. 游戏规则 羊了个羊在游戏下方共有7个槽位,玩家只要把3个相同方块点到槽位中就会消除 ...

  8. lucene加权_模仿百度(Baidu)推广

    我们在百度上面搜索一些东西的时候,会在最前面出现一些不是我们想要的信息 如: 在百度这里,是做了加权操作的,也就是我们知道的百度推广 那么现在我们就模拟一下百度推广 ================= ...

  9. Java radius源码_Java开发的radius server服务端

    [实例简介] Java开发的radius server端代码 [实例截图] [核心代码] JavaRadiusServer └── RadiusServer ├── bin │   ├── Insta ...

最新文章

  1. thinkphp-条件判断-范围判断-NOTBETWEEN
  2. Docker---问题1:bash: vi: command not found/bash: vim: command not found
  3. 人工智障学习笔记——深度学习(2)卷积神经网络
  4. SpringMVC文件上传笔记
  5. CSS 普通流 和 行格式化上下文 IFC
  6. Java DOM方式解析XML(模板)
  7. 大数据分析中常用的方法有哪些
  8. 取最大值_举一反三17——线段平方和的最小值与最大值
  9. 01-移植AZPR SoC到Xilinx Aritix7 FPGA
  10. 天下网商属于阿里系吗_“阿里公子”商标申请被驳回,不属于马云父亲的阿里家族吗?...
  11. 用PS擦除图片中不想要的部分,并保留图片背景
  12. 荣耀笔记本开机黑屏错误怎么U盘重装系统教学分享
  13. 自动备份Linux上的博客数据到坚果云
  14. 用户获取pppd拨号状态_iPhone手机隐藏的拨号键代码,原来还能这么用,幸好钱没白花...
  15. 干货总结!太全面了,图解SQL面试题:经典30题!
  16. Android内存优化(二)之Bitmap的内存申请与回收(Android N和O的对比)
  17. Linux 如何添加一个 Swap 文件
  18. MATLAB分析各类建筑能耗与环境温度关系
  19. 支持GIF动画的ImageView
  20. 重磅推荐,国内国外优秀的素材资源网站

热门文章

  1. Ubuntu Server如何配置SFTP
  2. 使用Lubuntu开发Android应用
  3. spi 外设驱动(spi_driver)
  4. HikariCP 高性能的 JDBC 连接池
  5. 现代中小企业IT基础平台建设 - 完整案例实战(00_序)
  6. 芝麻HTTP:redis-py的安装
  7. PAT、PMT、SDT详解
  8. window server 2012 IE10 增强的安全设置 如何关闭
  9. CSS BOX类型和display属性
  10. 小女也爱葵花宝典---读懂编译原理(1)