使用OpenOffice实现各种文档转pdf或者html文档

时间:2023-03-08 21:23:06
使用OpenOffice实现各种文档转pdf或者html文档

---恢复内容开始---

最近在做项目时需要写一个功能,将doc,ppt,xsl等文档做在线预览。网上查了很多资料,开始适用poi将文档转成pdf没成功,后来使用了OpenOffice4 + jodconverte2.2.2  + slf4j-jdk14-1.7.21,

jarbao版本一定要对,不然会报错,

首先安装Open Office4,导入jia包,下面直接上代码;

 import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
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;
import com.thinkgem.jeesite.common.config.Global; public class FileTransferUtils { /**
* inputFile : 源文件路径<br>
* outputFile : 目标文件路径<br>
* suffix : 目标文件后缀 ".pdf" , ".html" etc
* */
/*public static void main(String []args){
office2PDF("D:\\test\\out.docx", "D:\\test\\", ".pdf");
}*/
public static void office2PDF(String inputFile,String outputFile,String suffix){
try{
File input = new File(inputFile);
if(!input.exists()){
}
String filename = input.getName();
String file = filename.substring(0, filename.lastIndexOf("."));
System.out.println(file);
File output = new File(outputFile+file+suffix);
System.out.println(outputFile+file+suffix);
if(output.exists()){
output.delete();
} String open_office_home = Global.getConfig("openoffice.path"); //这是我在项目中配置的
//String open_office_home ="你的openoffie安装路径";
String command = open_office_home+
"program\\soffice.exe -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\""; //这条命令是通用的; Process process = Runtime.getRuntime().exec(command); OpenOfficeConnection connection =new SocketOpenOfficeConnection();
connection.connect();
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
converter.convert(input, output);
connection.disconnect();
process.destroy();
}catch(FileNotFoundException e){
e.printStackTrace();
}catch (ConnectException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
}
}

以上就是我做office文档转pdf的经验,初次发博,欢迎指教

---恢复内容结束---