当前位置: 代码迷 >> Java Web开发 >> 用java 将doc转换成html资料.
  详细解决方案

用java 将doc转换成html资料.

热度:105   发布时间:2016-04-17 15:02:11.0
用java 将doc转换成html文件...
请教怎么用java实现,将doc转换成html文件...

------解决方案--------------------
别用java了
直接word另存为html好过
------解决方案--------------------
将doc文件发布以后可能要在页面上浏览,那么在浏览的时候页面上肯定要加载相应的浏览工具,如:autvue这样在客户端就必须安装相应的浏览工具。如果将doc问及文件转换成html文件就省去很多功夫。

上面是些如下内容的目的,希望你也清楚。



/**
* @author sxd1
* @param paths
* @param savepaths
* @see 完成从word文档向HTML的转换
*/
public static void change(String paths, String savepaths) {
File[] lists = getFileList(paths);
String pathss = new String( " ");
// 对当前目录下面所有文件进行检索
for (int i = 0; i < lists.length; i++) {
if (lists[i].isFile()) {
String filename = lists[i].getName();
// 判断是否为doc文件
if (filename.endsWith( "doc ")) {
ActiveXComponent app = new ActiveXComponent(
"Word.Application ");// Excel.Application
// 启动word
String docpath = paths + filename;
String htmlpath = savepaths
+ filename.substring(0, (filename.length() - 4));
String inFile = docpath;
// 要转换的word文件
String tpFile = htmlpath;
// HTML文件
boolean flag = false;
try {
app.setProperty( "Visible ", new Variant(false));
// 设置word不可见
Object docs = app.getProperty( "Documents ").toDispatch();
Object doc = Dispatch.invoke((Dispatch) docs, "Open ",
Dispatch.Method, new Object[] { inFile },
new int[1]).toDispatch();
// 打开word文件
Dispatch.invoke((Dispatch) doc, "SaveAs ",
Dispatch.Method, new Object[] { tpFile,
new Variant(8) }, new int[1]);
// 作为html格式保存到临时文件
Variant f = new Variant(false);
Dispatch.invoke((Dispatch) doc, "Close ",
Dispatch.Method, new Object[] { new Variant(
false) }, new int[1]);
flag = true;
} catch (Exception e) {
e.printStackTrace();
} finally {
app.invoke( "Quit ", new Variant[] {});
}
System.out.println( "转化完毕! ");
}
} else {
pathss = paths;
// 进入下一级目录
pathss = pathss + lists[i].getName() + "\\ ";
// 递归遍历所有目录
change(pathss, savepaths);
}
}
}

上面的代码是程序的主体。

/**
* @author sxd1
* @param dirName
* @return string[]
* @see 得到给定目录下面的所有文件名称,并存放到string[]中
*/
private static File[] getFileList(String dirName) {
File[] fileList = null;
File dir = new File(dirName);
if (dir.isDirectory())
fileList = dir.listFiles();
return fileList;
}

这里需要注意的是:程序是用jadoc包完成的。在写程序之前需要完成下面的工作。因为JDK里面没有这个包。

1,下载jadoc.jar包,可以访问:http://danadler.com/jacob/,找Version1.7

2,需要注意的是Version1.7中包括jadoc.jar和jadoc.dll两个文件但是在这里只能用jadoc.jar,jardoc.dll需要重新下载。下载地址:http://tech.groups.yahoo.com/group/jacob-project/点“files”(当然你必须事先注册并登陆并加入组,才能进入)找就jacod_jer142fix_bin.zip并下载。

3,将下载的jacod.jar拷贝到jdk的\jre\lib\ext下面如:C:\jdk1.5.0_01\jre\lib\ext

4,将下载的jacod.dll拷贝到jdk的jre\bin下面如:C:\jdk1.5.0_01\jre\bin

然后就可以运行了,祝成功!
  相关解决方案