java 预览word文档_java 实现word文档在线预览

package filetest;

import java.io.BufferedInputStream;

import java.io.File;

import java.io.IOException;

import java.io.InputStream;

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 classDocConverter {private static final int environment = 1;//环境 1:windows 2:linux

private String fileString;//(只涉及pdf2swf路径问题)

private String outputPath = "";//输入路径 ,如果不设置就输出在默认的位置

privateString fileName;privateFile pdfFile;privateFile swfFile;privateFile docFile;publicDocConverter(String fileString) {

ini(fileString);

}/**

* 重新设置file

*

* @param fileString*/

public voidsetFile(String fileString) {

ini(fileString);

}/**

* 初始化

*

* @param fileString*/

private voidini(String fileString) {this.fileString =fileString;

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

docFile= newFile(fileString);

pdfFile= new File(fileName + ".pdf");

swfFile= new File(fileName + ".swf");

}/**

* 转为PDF

*

* @param file*/

private voiddoc2pdf() throws Exception {if(docFile.exists()) {if (!pdfFile.exists()) {

OpenOfficeConnection connection= new SocketOpenOfficeConnection(8100);try{

connection.connect();

DocumentConverter converter= newOpenOfficeDocumentConverter(connection);

converter.convert(docFile, pdfFile);//close the connection

connection.disconnect();

System.out.println("****pdf转换成功,PDF输出:" + pdfFile.getPath()+ "****");

}catch(java.net.ConnectException e) {

e.printStackTrace();

System.out.println("****swf转换器异常,openoffice服务未启动!****");throwe;

}catch(com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException e) {

e.printStackTrace();

System.out.println("****swf转换器异常,读取转换文件失败****");throwe;

}catch(Exception e) {

e.printStackTrace();throwe;

}

}else{

System.out.println("****已经转换为pdf,不需要再进行转化****");

}

}else{

System.out.println("****swf转换器异常,需要转换的文档不存在,无法转换****");

}

}/**

* 转换成 swf*/@SuppressWarnings("unused")private voidpdf2swf() throws Exception {

Runtime r=Runtime.getRuntime();if (!swfFile.exists()) {if(pdfFile.exists()) {if (environment == 1) {//windows环境处理

try{

Process p= r.exec("D:/pdf2swf/pdf2swf.exe"+ pdfFile.getPath() + "-o"+ swfFile.getPath() + "-T 9");//Process p=new Process();

System.out.print(loadStream(p.getInputStream()));

System.err.print(loadStream(p.getErrorStream()));

System.out.print(loadStream(p.getInputStream()));

System.err.println("****swf转换成功,文件输出:"

+ swfFile.getPath() + "****");if(pdfFile.exists()) {

pdfFile.delete();

}

}catch(IOException e) {

e.printStackTrace();throwe;

}

}else if (environment == 2) {//linux环境处理

try{

Process p= r.exec("pdf2swf" +pdfFile.getPath()+ "-o" + swfFile.getPath() + "-T 9");

System.out.print(loadStream(p.getInputStream()));

System.err.print(loadStream(p.getErrorStream()));

System.err.println("****swf转换成功,文件输出:"

+ swfFile.getPath() + "****");if(pdfFile.exists()) {

pdfFile.delete();

}

}catch(Exception e) {

e.printStackTrace();throwe;

}

}

}else{

System.out.println("****pdf不存在,无法转换****");

}

}else{

System.out.println("****swf已经存在不需要转换****");

}

}static String loadStream(InputStream in) throws IOException {int ptr = 0;in = new BufferedInputStream(in);

StringBuffer buffer= newStringBuffer();while ((ptr = in.read()) != -1) {

buffer.append((char) ptr);

}returnbuffer.toString();

}/**

* 转换主方法*/@SuppressWarnings("unused")publicboolean conver() {if(swfFile.exists()) {

System.out.println("****swf转换器开始工作,该文件已经转换为swf****");return true;

}if (environment == 1) {

System.out.println("****swf转换器开始工作,当前设置运行环境windows****");

}else{

System.out.println("****swf转换器开始工作,当前设置运行环境linux****");

}try{

doc2pdf();

pdf2swf();

}catch(Exception e) {

e.printStackTrace();return false;

}if(swfFile.exists()) {return true;

}else{return false;

}

}/**

* 返回文件路径

*

* @param s*/

publicString getswfPath() {if(swfFile.exists()) {

String tempString=swfFile.getPath();

tempString= tempString.replaceAll("\\\\", "/");returntempString;

}else{return "";

}

}/**

* 设置输出路径*/

public voidsetOutputPath(String outputPath) {this.outputPath =outputPath;if (!outputPath.equals("")) {

String realName= fileName.substring(fileName.lastIndexOf("/"),

fileName.lastIndexOf("."));if (outputPath.charAt(outputPath.length()) == '/') {

swfFile= new File(outputPath + realName + ".swf");

}else{

swfFile= new File(outputPath + realName + ".swf");

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值