java仿百度文库实现文档在线预览项目源码
一:测试平台 win7 64位系统二:准备软件 OpenOffice、swftools
OpenOffice 下载地址:http://www.openoffice.org/download/index.html
swftools下载地址:http://www.swftools.org/download.html
三:测试代码
1、conf.properties 软软件路径配置
OpenOffice_HOME = C:/Program Files (x86)/OpenOffice 4
SWFTools_HOME = D:/SWF/SWFTools第一行 是OpenOffice的安装路径 安装的时候请记住。
第二行 是swftools的安装路径。
你可以自定义安装路径最好放到一起、便于管理。
2、文档转换
/**
* 将odt、doc、docx、ppt或pptx格式的文件转换为pdf文件,如果文件后缀是pdf,则直接返回true。
*
* fileSuffix 文件的后缀。
*/
private boolean converToPdf(String sourceFilePath, String pdfFileSavePath){
File sourceFile = new File(sourceFilePath);
if (sourceFile.exists()) {
String OpenOffice_HOME = ConfProperties.getOpenOfficeHome();//OpenOffice的安装根目录
String command = OpenOffice_HOME + "/program/soffice.exe -headless -accept=\"socket,host=127.0.0.1,port=8100;urp;\"";
System.out.println("command"+command);
try {
Process process = Runtime.getRuntime().exec(command);//启动OpenOffice的服务
OpenOfficeConnection connection = new SocketOpenOfficeConnection("127.0.0.1", 8100);
connection.connect();
if(connection.isConnected()){//如果连接成功
DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
converter.convert(sourceFile, new File(pdfFileSavePath));
connection.disconnect();// close the connection
process.destroy();// 封闭OpenOffice服务的进程
System.out.println("****pdf转换成功,PDF输出:" + pdfFileSavePath+ "****");
return true;
}else{
return false;//swf转换器异常,openoffice连接失败!
}
} catch (ConnectException e) {
e.printStackTrace();
System.out.println("****swf转换器异常,openoffice服务未启动!****");
return false;
} catch (OpenOfficeException e) {
e.printStackTrace();
System.out.println("****swf转换器异常,读取转换文件失败****");
return false;
} catch (Exception e) {
e.printStackTrace();
return false;
}
} else {
System.out.println("****swf转换器异常,需要转换的文档不存在,无法转换****");
return false;
}
}将pdf文件转换为swf文件:
/**
* 将pdf文件转换为swf文件。
*
* @author ghj
*/
private Map<String, String> converFromPdfToSwf(String pdfFilePath,String swfFileSavePath){
String OS = System.getProperty("os.name").toLowerCase();
Map<String, String> returnMap = new HashMap<String, String>();
File pdfFile = new File(pdfFilePath);
Runtime r = Runtime.getRuntime();
if (pdfFile.exists()) {
String SWFTools_HOME = ConfProperties.getSWFToolsHome();// SWFTools的安装根目录
try {
if (OS.indexOf("windows")>=0) {// windows环境处理
Process process = r.exec(SWFTools_HOME+"/pdf2swf.exe "+ pdfFilePath + " -s flashversion=9 -o "+ swfFileSavePath);
System.out.print(loadStream(process.getInputStream()));
System.err.print(loadStream(process.getErrorStream()));
System.out.print(loadStream(process.getInputStream()));
System.err.println("****swf转换成功,文件输出:"+ swfFileSavePath + "****");
process.destroy();// 销毁进程
} else if (OS.indexOf("linux")>=0) {// linux环境处理
Process process = r.exec(SWFTools_HOME+"/pdf2swf "+ pdfFilePath + " -o " + swfFileSavePath + " -T 9");
System.out.print(loadStream(process.getInputStream()));
System.err.print(loadStream(process.getErrorStream()));
System.err.println("****swf转换成功,文件输出:"+ swfFileSavePath + "****");
process.destroy();// 销毁进程
}
if (pdfFile.exists()) {
pdfFile.delete();//转换成功以后删除上传的pdf文件和转换的pdf文件。
}
returnMap.put("status", "true");
returnMap.put("swfFileName", swfFileSavePath.substring(swfFileSavePath.lastIndexOf("/")+1));//便于获取转换后swf文件的名字
} catch (IOException e) {
e.printStackTrace();
returnMap.put("status", "false");
}
return returnMap;
} else {
System.out.println("****pdf不存在,无法转换****");
returnMap.put("status", "false");
return returnMap;
}
}
四:运行项目测试项目前 请先运行安装好的OpenOffice、swftools
测试页面:
源码下载地址:点击下载
软件下载地址:点击下载
这个项目太棒勒!下下来学习下! 感谢分享 , 感谢分享,mark~
页:
[1]