IE不支持页面展示,只能下载,博主用的浏览器为:chrome
先看效果:
实现方式:
1.首先下载一个openoffice。
2.执行bat脚本
D:
cd D:\abc\program
soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
路径为自己安装openoffice的路径(一闪而过就是出错了)
3.代码:
下面代码为excel转pdf的过程
String fileDir = "C:\\Users\\a\\workspace\\boot\\WebRoot\\asset\\distfile\\"+SRCFile;
String pdfString=SRCFile.substring(0,SRCFile.indexOf('.'))+".pdf";
String pdfDir = "C:\\Users\\a\\workspace\\boot\\WebRoot\\asset\\distfile\\"+pdfString;
System.out.println("pdfDir:" + SRCFile);
OfficeToPDF otp = new OfficeToPDF();
File file = new File(fileDir);
if(!file.exists()) {
file.mkdirs();
}
otp.docToPdf(new File(fileDir), new File(pdfDir));
OfficeToPDF类:
import java.io.File;
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.artofsolving.jodconverter.openoffice.converter.StreamOpenOfficeDocumentConverter;
public class OfficeToPDF {
public void docToPdf(File inputFile, File outputFile){
//启动服务
String OpenOffice_HOME = "D:\\abc";// 这里是OpenOffice的安装目录
if(OpenOffice_HOME.charAt(OpenOffice_HOME.length()-1)!='/'){
OpenOffice_HOME+="/";
}
Process pro = null;
OpenOfficeConnection connection = null;
// 启动OpenOffice的服务
String command = OpenOffice_HOME + "program/soffice.exe -headless -accept=\"socket,host=localhost,port=8100;urp;\"";
// connect to an OpenOffice.org instance running on port 8100
try{
pro = Runtime.getRuntime().exec(command);
connection = new SocketOpenOfficeConnection(8100);
connection.connect();
// convert
DocumentConverter converter = new StreamOpenOfficeDocumentConverter(connection);
System.out.println(inputFile+"="+outputFile);
converter.convert(inputFile, outputFile);
}catch(Exception ex){
System.out.println("程序出错了");
ex.printStackTrace();
}finally{
// close the connection
if(connection!=null){
connection.disconnect();
connection = null;
}
pro.destroy();
}
System.out.println("生成"+outputFile.getName());
}
//生产pdf线程
static class TestThread extends java.lang.Thread{
private File inputFile;
private File outputFile;
public void run(){
OfficeToPDF t = new OfficeToPDF();
t.docToPdf(inputFile, outputFile);
System.out.println(outputFile.getName()+"文件已生成");
}
public void setInputFile(File inputFile) {
this.inputFile = inputFile;
}
public void setOutputFile(File outputFile) {
this.outputFile = outputFile;
}
}
}
jsp页面设置一个路径:
<iframe src="${SRCFile }" id="display" style="width:100%;height:100%;"></iframe>