利用swftools将pdf转换为swf小例
package com.iori.webapp.util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class PDF2SWFUtil {
/**
* 利用SWFTools工具将pdf转换成swf,转换完后的swf文件与pdf同名
* @author iori
* @param fileDir PDF文件存放路径(包括文件名)
* @param exePath 转换器安装路径
* @throws IOException
*/
public static synchronized void pdf2swf(String fileDir, String exePath) throws IOException {
//文件路径
String filePath = fileDir.substring(0, fileDir.lastIndexOf("/"));
//文件名,不带后缀
String fileName = fileDir.substring((filePath.length() + 1), fileDir.lastIndexOf("."));
Process pro = null;
if (isWindowsSystem()) {
//如果是windows系统
//命令行命令
String cmd = exePath + " /"" + fileDir + "/" -o /"" + filePath + "/" + fileName + ".swf/"";
//Runtime执行后返回创建的进程对象
pro = Runtime.getRuntime().exec(cmd);
} else {
//如果是linux系统,路径不能有空格,而且一定不能用双引号,否则无法创建进程
String[] cmd = new String[3];
cmd[0] = exePath;
cmd[1] = fileDir;
cmd[2] = filePath + "/" + fileName + ".swf";
//Runtime执行后返回创建的进程对象
pro = Runtime.getRuntime().exec(cmd);
}
//非要读取一遍cmd的输出,要不不会flush生成文件(多线程)
new DoOutput(pro.getInputStream()).start();
new DoOutput(pro.getErrorStream()).start();
try {
//调用waitFor方法,是为了阻塞当前进程,直到cmd执行完
pro.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
/**
* 判断是否是windows操作系统
* @author iori
* @return
*/
private static boolean isWindowsSystem() {
String p = System.getProperty("os.name");
return p.toLowerCase().indexOf("windows") >= 0 ? true : false;
}
/**
* 多线程内部类
* 读取转换时cmd进程的标准输出流和错误输出流,这样做是因为如果不读取流,进程将死锁
* @author iori
*/
private static class DoOutput extends Thread {
public InputStream is;
//构造方法
public DoOutput(InputStream is) {
this.is = is;
}
public 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 = "c:/SWFTools/pdf2swf.exe";
try {
PDF2SWFUtil.pdf2swf("c:/test.pdf", exePath);
} catch (IOException e) {
System.err.println("转换出错!");
e.printStackTrace();
}
}
}
利用swftools将pdf转换为swf小例相关推荐
- Java使用SWFTools转换PDF为SWF
上一篇文章说道,我的一个Android项目里需要查看word和pdf文档,由于在移动终端转换格式比较费劲,所以我选择在服务器端转换.针对word我选择转换为html,在上一篇文章中已经说得很清楚了,那 ...
- 将PDF转换为SWF文件
在处理在线阅读PDF文件时,可以将PDF文件转换为SWF的方式.使用SWFTOOLS工具可以实现格式转换. 工具下载:http://www.swftools.org/download.html swf ...
- java linux pdf2swf_Linux PDF转换为SWF
Linux PDF转换为SWF 2010-01-28 15:33:32 由于工程需要把用户上传的PDF转换为SWF,服务器要求也是linux,所以就想到 swftools,官方网站:http://ww ...
- linux java pdf2swf_linux PDF转换为SWF
由于工程需要把用户上传的PDF转换为SWF,服务器要求也是linux,所以就想到 swftools,官方网站:http://www.swftools.org/可以把很多文件转换为swf,他默认只支持 ...
- SWFTools PDF转换为SWF
前言 在iText 制作PDF这篇博文中只是简单的介绍了如何制作PDF,为了能让PDF在Web页面中显示,我还需要通过SWFTools工具将PDF文件转换为SWF文件,然后通过SWF文件显示在Web网 ...
- pdf转换为word小工具,挺好
这个工具不错啊,曾经我一直想找一个pdf转换为word的,但是一直不怎么合心意.感觉转换的格式都不是非常好,但是这个工具转换出来的东西和原来的pdf差点儿相同.是个好东西. 链接 下载链接 只是要注冊 ...
- Python 利用pymupdf将pdf转换为图片并拆分,后通过PIL合并生成一张图片
文章主要内容主要参考几篇文章并合并在一起的,文章链接依次如下,第二和第三的文章链接是从第一篇文章找到的: (1).https://blog.csdn.net/qq_25115281/article/d ...
- linux pdf转换swf,CENTOS 5 PDF转换为SWF
1.Install Language support in CentOS 5 or Red Hat Enterprise Linux(http://www.cyberciti.biz/faq/linu ...
- swftools工具将pdf文件转换为swf文件
开发客户网站时遇到了一个需求,客户要求后台上传pdf文件,前台能以翻书的形式直接访问. 首先想到的是使用js解决,用户访问前端页面时,php将文件路径发送给js,让js呈现出来翻书的效果.在网上百度了 ...
最新文章
- epoll监听文件_epoll详解——从功能到内核
- cad怎么卸载干净_百度软件中心助手怎么样干净卸载
- Python 中__new__()和__init__()的区别
- 最好用的日志分析工具ELK
- invalid floating point operation什么意思_数据可视化有意思的小例子:Taylor Swift 歌词数据分析和可视化...
- java确认rabbitmq_RabbitMQ 消息确认机制
- 华为产品技术学习笔记之路由原理(一)
- 王校长一分钟能吃多少热狗?| 小游戏
- ETL数据清洗的案例
- 班尼路信息化系统基础选型的简单分析
- Spring 依赖注入中 Field 注入的有害性
- 微信小程序的基础实现
- Github上的1000多本免费电子书重磅来袭!
- 微信小程序--对接萤石云视频监控
- 2021全新整合单机游戏 PC电脑版中文合集系列下载持续更新
- css版权备案等居于页面底部与超出不换行可滑动
- Keil MDK 和 IAR 两款ARM开发工具区别比较
- error MSB4184: 无法计算表达式
- 银河麒麟系统共享打印机方法
- 九章算术卷第八 方程