java swf转pdf_doc转pdf和pdf转swf

本文展示了如何使用Java通过OpenOffice将doc和docx转换为pdf,以及利用SWFTools将pdf转换为swf。代码中详细说明了转换过程,并提供了转换命令的构建方式。
摘要由CSDN通过智能技术生成

[java]代码库/**

*OpenOffice可以到官网下载最新版的SWFTools也是直接搜索名字即可

*OpenOffice转2007版本一下的支持比较好2010以上对插入的艺术字表格等会丢失但是文字和图片还是没有问题的

*/

package com.java.doc2pdf;

import java.io.BufferedInputStream;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

import java.net.ConnectException;

import com.artofsolving.jodconverter.DocumentConverter;

import com.artofsolving.jodconverter.openoffice.connection.OpenOfficeConnection;

import com.artofsolving.jodconverter.openoffice.connection.SocketOpenOfficeConnection;

import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;

/**

* doc docx格式转换

*/

public class DocConverter {

//Test测试方法

public static void main(String[] args) throws Exception {

DocConverter d = new DocConverter();

String fileString = "美文.doc";

String fileName = fileString.substring(0, fileString.lastIndexOf("."));

int a = d.office2PDF("D:\\美文.docx","D:\\美文.pdf");

System.out.println(a);

int b = d.pdf2swf("D:\\美文.pdf","D:\\美文.swf",fileName);

System.out.println(b);

}

/**

* doc转pdf

* @param sourceFile

* @param destFile

* @return

*/

public int office2PDF(String sourceFile, String destFile) {

try {

File inputFile = new File(sourceFile);

if (!inputFile.exists()) {

return -1;// 找不到源文件, 则返回-1

}

System.out.println("FindDocFile");

// 如果目标路径不存在, 则新建该路径

File outputFile = new File(destFile);

if (!outputFile.getParentFile().exists()) {

outputFile.getParentFile().mkdirs();

}

System.out.println("mkPdfFile");

//这里是OpenOffice的安装目录

String OpenOffice_HOME = "C:/Program Files (x86)/OpenOffice 4";

// 如果从文件中读取的URL地址最后一个字符不是 '\',则添加'\'

System.out.println(OpenOffice_HOME);

if (OpenOffice_HOME.charAt(OpenOffice_HOME.length() - 1) != '\\') {

OpenOffice_HOME += "\\";

}

// 启动OpenOffice的服务

System.out.println("OpenOfficeStart");

String command = OpenOffice_HOME

+ "program\\soffice.exe -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\"";

Process pro = Runtime.getRuntime().exec(command);

// connect to an OpenOffice.org instance running on port 8100

OpenOfficeConnection connection = new SocketOpenOfficeConnection(

"127.0.0.1", 8100);

connection.connect();

// convert

DocumentConverter converter = new OpenOfficeDocumentConverter(

connection);

converter.convert(inputFile, outputFile);

// close the connection

connection.disconnect();

// 关闭OpenOffice服务的进程

pro.destroy();

System.out.println("OpenOfficeStop");

return 0;

} catch (FileNotFoundException e) {

e.printStackTrace();

return -1;

} catch (ConnectException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return 1;

}

/**

* pdf转换成 swf

* @throws Exception

*/

private int pdf2swf(String pdfFile, String swfFile,String fileName) throws Exception {

try {

File inputFile = new File(pdfFile);

if (!inputFile.exists()) {

return -1;// 找不到源文件, 则返回-1

}

System.out.println("FindDocFile");

// 如果目标路径不存在, 则新建该路径

File outputFile = new File(swfFile);

if (!outputFile.getParentFile().exists()) {

outputFile.getParentFile().mkdirs();

}

System.out.println("mkSwfFile");

//这里是SWFTools的安装目录

String SWFTools_HOME = "F://test//SWFTools//pdf2swf.exe";

System.out.println("SWFToolsStart");

System.out.println(inputFile.getPath());

System.out.println(outputFile.getPath());

String command = (SWFTools_HOME

+" "+inputFile.getPath()+ " -o " +" "+ outputFile.getPath()

+ " -T 9");

System.out.println("转换命令:" + command);

Process pro = Runtime.getRuntime().exec(command);

System.out.println(loadStream(pro.getInputStream()));

System.out.println("swf文件转份成功!!!");

System.out.println(outputFile.getPath());

pro.destroy();

// if (inputFile.exists()) {

// inputFile.delete();

//}

System.out.println("SWFToolsStop");

return 0;

} catch (FileNotFoundException e) {

e.printStackTrace();

return -1;

} catch (ConnectException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return 0;

}

private static String loadStream(InputStream in) throws Exception {

int len = 0;

in = new BufferedInputStream(in);

StringBuffer buffer = new StringBuffer();

while ((len = in.read()) != -1) {

buffer.append((char) len);

}

return buffer.toString();

}

}

[源代码打包下载]

7ab7b94785bbdb79d4aaa6009386543f.giflib.zip(50积分)[2 次下载]

694748ed64b9390909c0d88230893790.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值