1、openOffice 下载安装
官方下载地址:http://www.openoffice.org/download/index.html
2、openOffice启动:
cd C:\Program Files\OpenOffice.org 3\program
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
3、导包:jodconverter-2.2.2.jar
4、代码:
import java.io.File;
import java.net.ConnectException;
import org.apache.log4j.Logger;
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;
public class File2Pdf {
private static Logger logger=Logger.getLogger(File2Pdf.class);
public static void convertFileToPdf(String sourceFileUrl, String pdfFileUrl) {
File sourceFile = new File(sourceFileUrl); // 转换源文件
File pdfFile = new File(pdfFileUrl);// PDF目标文件
doConvert(sourceFile, pdfFile);
}
public static void convertFileToPdf(File sourceFile,String pdfFileUrl) {
File pdfFile = new File(pdfFileUrl);// PDF目标文件
doConvert(sourceFile, pdfFile);
}
/**
* 转换过程
* @param sourceFile
* @param pdfFile
*/
public static void doConvert(File sourceFile,File pdfFile){
// 转换成pdf文件
if (sourceFile.exists()) {
if (!pdfFile.exists()) {
OpenOfficeConnection connection = new SocketOpenOfficeConnection(
8100);
try {
connection.connect();
DocumentConverter converter = new OpenOfficeDocumentConverter(
connection);
converter.convert(sourceFile, pdfFile);
pdfFile.createNewFile();
connection.disconnect();
logger.info("转换为PDF格式成功:"+pdfFile.getName());
} catch (java.net.ConnectException e) {
e.printStackTrace();
logger.info("OpenOffice服务未启动");
try {
throw e;
} catch (ConnectException e1) {
e1.printStackTrace();
}
} catch (com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException e) {
e.printStackTrace();
logger.info("读取文件失败");
throw e;
} catch (Exception e) {
e.printStackTrace();
try {
throw e;
} catch (Exception e1) {
e1.printStackTrace();
}
}
} else {
logger.info("已转换为PDF,无需再次转换");
}
} else {
logger.info("要转换的文件不存在");
}
}
public static void main(String[] args) {
convertFileToPdf("D:\\Test2PDF.doc","d:\\Test2PDf.pdf");
}
}