Linux/Centos环境安装配置Swftools pdf转swf 及java代码转化
来源:互联网 发布:离线数据大魔王 编辑:程序博客网 时间:2024/05/18 01:07
1、安装所需的库和组件。安装前准备,主要安装的是下面几个组件。
yum install gcc* automake zlib-devel libjpeg-devel giflib-devel freetype-devel
2、下载编译安装swftools。最新下载地址:http://www.swftools.org/download.html
wget http://www.swftools.org/swftools-2013-04-09-1007.tar.gztar vxzf swftools-2013-04-09-1007.tar.gzcd swftools-2013-04-09-1007./configure --prefix=/usr/local/swftoolsmakemake install
3、设置swftools环境变量,使pdf2swf成为一个可执行命令
vim /etc/profileexport PATH=$PATH:/usr/local/swftools/bin/
4、安装xpdf语言包。下载xpdf-chinese-simplified.tar.gz文件,解压到/usr/local下,编辑add-to-xpdfrc文件,如下:
wget ftp://ftp.foolabs.com/pub/xpdf/xpdf-chinese-simplified.tar.gzwget http://www.nginxs.com/download/font.zip
tar zxvf xpdf-chinese-simplified.tar.gz
unzip font.zip
mv Gbsn00lp.ttf gkai00mp.ttf xpdf-chinese-simplified/CMap/##把 xpdf-chinese-simplified 移动到 /usr/share/xpdfmkdir -p /usr/share/xpdf
mv xpdf-chinese-simplified /usr/share/xpdf##修改配置文件cd /usr/share/xpdf/xpdf-chinese-simplified用winscp上传上来一个 pdf 转换看看。
vi add-to-xpdfrc
#----- begin Chinese Simplified support package (2011-sep-02)
cidToUnicode Adobe-GB1 /usr/share/xpdf/Adobe-GB1.cidToUnicode
unicodeMap ISO-2022-CN /usr/share/xpdf/ISO-2022-CN.unicodeMap
unicodeMap EUC-CN /usr/share/xpdf/EUC-CN.unicodeMap
unicodeMap GBK /usr/share/xpdf/GBK.unicodeMap
cMapDir Adobe-GB1 /usr/share/xpdf/CMap
toUnicodeDir /usr/share/xpdf/CMap
displayCIDFontTT Adobe-GB1 /usr/share/xpdf/CMap/gkai00mp.ttf
displayCIDFontTT Adobe-GB1 /usr/share/xpdf/CMap/Gbsn00lp.ttf
字体文件自己下载…
5、最后使用如下转换命令测试:
/usr/local/swftools/bin/pdf2swf -o /root/download/fenxi.swf -T -z -t /root/download/fenxi.pdf -s languagedir=/usr/share/xpdf/xpdf-chinese-simplified -s flashversion=9
swftools_swf_Path_Linux=/usr/local/swftools/share/swftools/swfs/rfxview.swf
swftools_pdf2swf_Path_Linux=/usr/local/swftools/bin/pdf2swf
swftools_swfcombine_Path_Linux=/usr/local/swftools/bin/swfcombine
swftools_xpdf_Path_Linux=/usr/share/xpdf/
swftools_pdf2swf_Path_Linux=/usr/local/swftools/bin/pdf2swf
swftools_swfcombine_Path_Linux=/usr/local/swftools/bin/swfcombine
swftools_xpdf_Path_Linux=/usr/share/xpdf/
public class PdfToSwf {
private static final Object OBJECT=new Object();
private static final Logger LOGGER=Logger.getLogger(PdfToSwf.class);
//可以从配置文件获取
private String CMD_PDF2SWF;
private String CMD_SWFCOMBINE;
private String XPDF_PATH;
private String PDF2SWF_SWF;
/**
*
* @param cmd_pdf2swf pdf2swf程序路径
* @param cmd_swfcombine swfcombine程序路径
* @param path_xpdf XPDF的路径
* @param default_swf SWF模板
*/
public PdfToSwf(String cmd_pdf2swf,String cmd_swfcombine,String path_xpdf,String default_swf){
this.CMD_PDF2SWF=cmd_pdf2swf;
this.CMD_SWFCOMBINE=cmd_swfcombine;
this.XPDF_PATH=path_xpdf;
this.PDF2SWF_SWF=default_swf;
}
/**
* pdf转swf
* @param sourcePath pdf源文件路径
* @param destPath swf文件统一转换的目录
* @param fileName swf文件名
* @return 是否成功
* @throws IOException
*/
public boolean convertPDF2SWF(String sourcePath, String destPath,
String fileName) throws IOException {
synchronized (OBJECT) {
File dest = new File(destPath);
if (!dest.exists()) {
dest.mkdirs();
}
File source = new File(sourcePath);
if (!source.exists()) {
return false;
}
LOGGER.info("1 -> sourcePath:"+sourcePath+"\tdestPath:"+destPath+"\tfileName:"+fileName);
String command = CMD_PDF2SWF+" -z -s flashversion=9 -t " + sourcePath
+ " -o " + destPath + fileName + ""+" -s languagedir="+XPDF_PATH;
LOGGER.info("1 ->command:"+command);
Process pro = Runtime.getRuntime().exec(command);
final InputStream inputStream = pro.getInputStream();
final InputStream errStream = pro.getErrorStream();
new Thread(){
@Override
public void run() {
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
try {
String line=null;
while((line=br.readLine()) != null) {
LOGGER.info("PDF2SWF INFO:"+line);
}
} catch (IOException e) {
LOGGER.info("PDF2SWF ERROR:"+e.getMessage());
e.printStackTrace();
}
}
}.start();
new Thread(){
@Override
public void run() {
BufferedReader br = new BufferedReader(new InputStreamReader(errStream));
try {
String line=null;
while((line=br.readLine()) != null) {
LOGGER.info("PDF2SWF ERROR:"+line);
}
} catch (IOException e) {
LOGGER.info("PDF2SWF ERROR:"+e.getMessage());
e.printStackTrace();
}
}
}.start();
try {
int r=pro.waitFor();
if(r!=0){
return false;
}
} catch (InterruptedException e) {
e.printStackTrace();
return false;
}
LOGGER.info("2 -> sourcePath"+sourcePath+"destPath:"+destPath+"fileName:"+fileName);
command = CMD_SWFCOMBINE+" -z -X 800 -Y 600 "+PDF2SWF_SWF+" viewport="
+ destPath + fileName + " -o " + destPath + fileName + "";
LOGGER.info("2 ->command:"+command);
pro = Runtime.getRuntime().exec(command);
final InputStream inputStream2 = pro.getInputStream();
final InputStream errStream2 = pro.getErrorStream();
new Thread(){
@Override
public void run() {
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream2));
try {
String line=null;
while((line=br.readLine()) != null) {
LOGGER.info("PDF2SWF INFO:"+line);
}
} catch (IOException e) {
LOGGER.info("PDF2SWF ERROR:"+e.getMessage());
e.printStackTrace();
}
}
}.start();
new Thread(){
@Override
public void run() {
BufferedReader br = new BufferedReader(new InputStreamReader(errStream2));
try {
String line=null;
while((line=br.readLine()) != null) {
LOGGER.info("PDF2SWF Error:"+line);
}
} catch (IOException e) {
LOGGER.info("PDF2SWF ERROR:"+e.getMessage());
e.printStackTrace();
}
}
}.start();
try {
int r=pro.waitFor();
if(r!=0){
return false;
}
} catch (InterruptedException e) {
e.printStackTrace();
return false;
}
return pro.exitValue()==0;
}
}
}
private static final Object OBJECT=new Object();
private static final Logger LOGGER=Logger.getLogger(PdfToSwf.class);
//可以从配置文件获取
private String CMD_PDF2SWF;
private String CMD_SWFCOMBINE;
private String XPDF_PATH;
private String PDF2SWF_SWF;
/**
*
* @param cmd_pdf2swf pdf2swf程序路径
* @param cmd_swfcombine swfcombine程序路径
* @param path_xpdf XPDF的路径
* @param default_swf SWF模板
*/
public PdfToSwf(String cmd_pdf2swf,String cmd_swfcombine,String path_xpdf,String default_swf){
this.CMD_PDF2SWF=cmd_pdf2swf;
this.CMD_SWFCOMBINE=cmd_swfcombine;
this.XPDF_PATH=path_xpdf;
this.PDF2SWF_SWF=default_swf;
}
/**
* pdf转swf
* @param sourcePath pdf源文件路径
* @param destPath swf文件统一转换的目录
* @param fileName swf文件名
* @return 是否成功
* @throws IOException
*/
public boolean convertPDF2SWF(String sourcePath, String destPath,
String fileName) throws IOException {
synchronized (OBJECT) {
File dest = new File(destPath);
if (!dest.exists()) {
dest.mkdirs();
}
File source = new File(sourcePath);
if (!source.exists()) {
return false;
}
LOGGER.info("1 -> sourcePath:"+sourcePath+"\tdestPath:"+destPath+"\tfileName:"+fileName);
String command = CMD_PDF2SWF+" -z -s flashversion=9 -t " + sourcePath
+ " -o " + destPath + fileName + ""+" -s languagedir="+XPDF_PATH;
LOGGER.info("1 ->command:"+command);
Process pro = Runtime.getRuntime().exec(command);
final InputStream inputStream = pro.getInputStream();
final InputStream errStream = pro.getErrorStream();
new Thread(){
@Override
public void run() {
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
try {
String line=null;
while((line=br.readLine()) != null) {
LOGGER.info("PDF2SWF INFO:"+line);
}
} catch (IOException e) {
LOGGER.info("PDF2SWF ERROR:"+e.getMessage());
e.printStackTrace();
}
}
}.start();
new Thread(){
@Override
public void run() {
BufferedReader br = new BufferedReader(new InputStreamReader(errStream));
try {
String line=null;
while((line=br.readLine()) != null) {
LOGGER.info("PDF2SWF ERROR:"+line);
}
} catch (IOException e) {
LOGGER.info("PDF2SWF ERROR:"+e.getMessage());
e.printStackTrace();
}
}
}.start();
try {
int r=pro.waitFor();
if(r!=0){
return false;
}
} catch (InterruptedException e) {
e.printStackTrace();
return false;
}
LOGGER.info("2 -> sourcePath"+sourcePath+"destPath:"+destPath+"fileName:"+fileName);
command = CMD_SWFCOMBINE+" -z -X 800 -Y 600 "+PDF2SWF_SWF+" viewport="
+ destPath + fileName + " -o " + destPath + fileName + "";
LOGGER.info("2 ->command:"+command);
pro = Runtime.getRuntime().exec(command);
final InputStream inputStream2 = pro.getInputStream();
final InputStream errStream2 = pro.getErrorStream();
new Thread(){
@Override
public void run() {
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream2));
try {
String line=null;
while((line=br.readLine()) != null) {
LOGGER.info("PDF2SWF INFO:"+line);
}
} catch (IOException e) {
LOGGER.info("PDF2SWF ERROR:"+e.getMessage());
e.printStackTrace();
}
}
}.start();
new Thread(){
@Override
public void run() {
BufferedReader br = new BufferedReader(new InputStreamReader(errStream2));
try {
String line=null;
while((line=br.readLine()) != null) {
LOGGER.info("PDF2SWF Error:"+line);
}
} catch (IOException e) {
LOGGER.info("PDF2SWF ERROR:"+e.getMessage());
e.printStackTrace();
}
}
}.start();
try {
int r=pro.waitFor();
if(r!=0){
return false;
}
} catch (InterruptedException e) {
e.printStackTrace();
return false;
}
return pro.exitValue()==0;
}
}
}
0 0
- Linux/Centos环境安装配置Swftools pdf转swf 及java代码转化
- linux下pdf转换swf格式的相关软件的安装和swftools配置
- Linux-CentOS 安装配置swftools
- linux环境安装配置swftools
- Linux环境安装配置Swftools
- Linux环境安装配置Swftools
- Linux环境安装配置Swftools
- Linux环境安装配置Swftools
- Linux环境安装配置Swftools
- CentOS下安装转PDF和SWF环境
- Java使用SWFTools转换PDF为SWF
- java中调用swftools软件将pdf转化为swf文件 在线预览之步骤二
- 调用swftools将中文PDF转化为SWF
- swftools将PDF转成swf
- SWFTools: pdf 转 swf 中文乱码、中文不显示问题。
- SwfTools之linux环境安装
- java pdf 转 swf
- java 用FlexPaper+SWFTools实现文章可看不可复制黏贴,转化swf,当文件名中含有多个空格,转化失败的原因及解决办法
- JavaScript_字符串_replaceAll_正则
- flex的Tree树在根结点之间画虚线
- 关于java 的 this
- 通过跳板机自动登录服务器脚本
- 编程习惯
- Linux/Centos环境安装配置Swftools pdf转swf 及java代码转化
- java学习笔记--易忽视的情况 (1)
- ifdef和endif的理解
- 按灯泡
- C++的cin/cout高阶格式化操作
- Android控件抖动效果
- 快速排序(Java描述)
- Matlab7.0安装之后Runtime Error警告解决办法
- 待更新·优化问题求解算法实现方法·Java版