转载请表明出处 https://blog.csdn.net/Amor_Leo/article/details/89388851 谢谢

java使用swfTools将pdf文件转换swf文件

  • swfTools下载
  • 工具类

swfTools下载

swfTools下载

工具类

public class PDF2SWFUtils {private static Logger logger = LoggerFactory.getLogger(PDF2SWFUtils.class);/*** 利用SWFTools工具将pdf转换成swf,转换完后的swf文件与pdf同名* @param intputPath PDF文件存放路径(包括文件名)* @param exePath 转换器安装路径*/public static synchronized boolean pdf2swf(String intputPath , String outputPath, String exePath)  {// 源文件不存在则返回File source = new File(intputPath);if (!source.exists()) {logger.debug("原始文件不存在!!");return false;}// 目标路径存在则删除File out = new File(outputPath);if (out.exists()) {logger.debug("目标文件存在,删除!!");out.delete();}Process pro = null;if (isWindowsSystem()) {//如果是windows系统//命令行命令String cmd = exePath + " \"" + intputPath + "\" -o \"" + outputPath + "\"" + " -f -T 9";//Runtime执行后返回创建的进程对象try {pro = Runtime.getRuntime().exec(cmd);logger.debug("window下开始转换!! "+ pro);} catch (IOException e) {e.printStackTrace();logger.debug("转换失败!! 异常: "+ e );return false;}} else {//如果是linux系统,路径不能有空格,而且一定不能用双引号,否则无法创建进程String[] cmd = new String[5];cmd[0] = exePath;cmd[1] = intputPath;// cmd[2] = filePath + "/" + fileName + ".swf";cmd[3] = outputPath;//Runtime执行后返回创建的进程对象try {pro = Runtime.getRuntime().exec(cmd);logger.debug("linux下开始转换!! "+ pro);} catch (IOException e) {e.printStackTrace();logger.debug("转换失败!! 异常: "+ e );return false;}}//非要读取一遍cmd的输出,要不不会flush生成文件(多线程)new DoOutput(pro.getInputStream()).start();new DoOutput(pro.getErrorStream()).start();try {//调用waitFor方法,是为了阻塞当前进程,直到cmd执行完pro.waitFor();} catch (InterruptedException e) {e.printStackTrace();logger.debug("转换失败!! 异常: "+ e );return false;}finally {pro.destroy();}return true;}/*** 判断是否是windows操作系统* @return*/private static boolean isWindowsSystem() {String p = System.getProperty("os.name");return p.toLowerCase().contains("windows");}/*** 多线程内部类* 读取转换时cmd进程的标准输出流和错误输出流,这样做是因为如果不读取流,进程将死锁*/private static class DoOutput extends Thread {public InputStream is;//构造方法public DoOutput(InputStream is) {this.is = is;}@Overridepublic void run() {BufferedReader br = new BufferedReader(new InputStreamReader(this.is));String str = null;try {//这里并没有对流的内容进行处理,只是读了一遍while ((str = br.readLine()) != null);} catch (IOException e) {e.printStackTrace();} finally {if (br != null) {try {br.close();} catch (IOException e) {e.printStackTrace();}}}}}/*** 测试main方法* @param args*/public static void main(String[] args) {//转换器安装路径String exePath = "D:/SoftWare/SWFTools/pdf2swf.exe";boolean b = PDF2SWFUtils.pdf2swf("D:/DOC/aaa.pdf", "D:/DOC/111.swf", exePath);System.out.println(b);}
}

java使用swfTools将pdf文件转换swf文件相关推荐

  1. 如何使用SWFTools 命令 将pdf文件转换为swf文件,并进行在线浏览该pdf文件

    发布一个k8s部署视频:https://edu.csdn.net/course/detail/26967 课程内容:各种k8s部署方式.包括minikube部署,kubeadm部署,kubeasz部署 ...

  2. swftools工具将pdf文件转换为swf文件

    开发客户网站时遇到了一个需求,客户要求后台上传pdf文件,前台能以翻书的形式直接访问. 首先想到的是使用js解决,用户访问前端页面时,php将文件路径发送给js,让js呈现出来翻书的效果.在网上百度了 ...

  3. swftools工具将pdf文件转换为swf文件 文字丢失

    开发客户网站时遇到了一个需求,客户要求后台上传pdf文件,前台能以翻书的形式直接访问. 首先想到的是使用js解决,用户访问前端页面时,php将文件路径发送给js,让js呈现出来翻书的效果.在网上百度了 ...

  4. swftools将PDF转成swf (含中文的pdf注意事项)

    1. 下载swftools:http://www.swftools.org/download.html 下载xpdf xpdf-chinese-simplified 2 . 安装swftools 解压 ...

  5. txt doc rtf html,JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例.docx

    JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例 JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例??2012-06-2 ...

  6. SWF是什么文件,SWF文件用什么软件可以打开 1

    一.介绍SWF文件 SWF格式相信大多数人都是没有听说过的,不过有一个与之相关的名字可能耳熟能详,那就是Flash.SWF格式是动画软件Flash的专用格式,广泛应用于网页设计和动画制作.Flash主 ...

  7. 转换word等文件为swf文件

    一.首先将word类文件转换为pdf格式文件 我这里使用的是PDFdoTool工具,支持多种文件转为pdf,这个工具应该很简单就可以下载到,这里就不贴下载方式了: 注意:转换word文件时,不要打开此 ...

  8. flex开发的仿pdf阅读器(swftools将PDF转成swf)

    SWFTools 是一组用来处理 Flash 的 swf 文件的工具包,包括: 1. 合并工具 swfcombine 2. 抽取工具 swfextract 3. PDF/JPEG/PNG/AVI/TT ...

  9. html文件转换Excel2016文件,万能文件转换工具(word,excel,powerpiont,PDF,TXT,JPG,HTML互转)...

    All Office Converter Platinum v6.1 官方简体中文注册版是一款易于使用和专业的文件转换工具.它可以高质量的支持批量转换文件,网页和图像,以改善工作效率.有了这个强大的转 ...

最新文章

  1. JDK17 要来了!会带来什么新特性?不好意思,我还在JDK7 踏步走...
  2. soundex mysql_MySQL SOUNDEX()用法及代码示例
  3. razor 怎样使用session变量_Nginx负载均衡解决session一致性问题
  4. 开机流程与主引导分区(MBR)——鸟哥私房菜
  5. vue请求封装,Store-状态管理部分(文档笔记)
  6. vsftpd + Berkeley DB 创建基于虚拟用户的FTP
  7. [HAOI2015]树上染色
  8. 在java中2l是什么_(二)常量定义
  9. 软件体系结构测试定义,软件体系结构-中国大学mooc-题库零氪
  10. 如何阅读《如何阅读一本书》?
  11. WhatsApp Business 与 Google My Business:它们的运作方式和不同之处
  12. java实现屏幕亮度调节
  13. javscript创建Emitter
  14. Web简易时间轴制作(超详细)
  15. 自己的网页嵌入外部邮箱登陆
  16. VUE3.X——获取dom元素
  17. Python pip 常用命令
  18. 配置samba服务器全过程
  19. vagrant+virtualbox搭建centos7
  20. 并不是只有 Redis 才可以做缓存

热门文章

  1. Warning[w6]: Type conflict for external/entry AClkSet, in module 1 against
  2. python量化投资数据类型_python量化投资(二):如何得到数据
  3. MySQL:DQL 数据查询语句盘点
  4. 2020 版上海《米其林指南》“米其林餐盘“ + “必比登推介”
  5. 社区实践 | KubeVirt通过Kube-OVN接入Underlay网络
  6. GC日志分析以及相关基础知识
  7. 周末放松 | 2017年看了很多书,想挑出来10本和大家一起分享
  8. 获取当前月的周六或者周日
  9. win10蓝牙功能不见了_找回win10丢失的蓝牙
  10. 艾瑞咨询:2021年中国云原生AI开发平台白皮书