java通过jacob来读取word转换为htm格式

文章出处:http://blog.csdn.net/chinapi_hzh/article/details/5798689

用jacob. 先到官方网站上去下载:http://sourceforge.net/project/showfiles.php?group_id=109543&package_id=118368 jacob.zip.    下载jacob_18.zip(1.8版本),下载之后解压,把jacob.jar放到项目/web-inf/lib下面。把jacob .dll放到c:/windos/system32/以及java/jdk*.*/jre/bin下面。这样就算是配置完成了。

package com.yigou.comm;

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;

public class WordUtil {
	public static boolean ChageFormat(String FolderPath, String FileName) {
		String FileFormat = "";
		System.out.println(FolderPath);
		FileFormat = FileName.substring(FileName.length() - 4, FileName
				.length());
		System.out.println(FileFormat);
		if (FileFormat.equalsIgnoreCase(".doc")) {
			String DocFile = FolderPath + "//" + FileName;
			System.out.println("word文件路径:" + DocFile);
			// word文件的完整路径
			String HtmlFile = DocFile.substring(0, (DocFile.length() - 4))
					+ ".htm";
			System.out.println("htm文件路径:" + HtmlFile);
			// html文件的完整路径
			ActiveXComponent app = new ActiveXComponent("Word.Application");
			// 启动word
			try {
				app.setProperty("Visible", new Variant(false));
				// 设置word程序非可视化运行
				Dispatch docs = app.getProperty("Documents").toDispatch();
				Dispatch doc = Dispatch.invoke(
						docs,
						"Open",
						Dispatch.Method,
						new Object[] { DocFile, new Variant(false),
								new Variant(true) }, new int[1]).toDispatch();
				// 打开word文件
				Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
						HtmlFile, new Variant(8) }, new int[1]);
				// 作为htm格式保存文件
				Dispatch.call(doc, "Close", new Variant(false));
				// 关闭文件
			} catch (Exception e) {
				e.printStackTrace();
			} finally {
				app.invoke("Quit", new Variant[] {});
				// 退出word程序
			}
			// 转化完毕
			return true;
		}
		return false;
	}

	public static void main(String[] args) {
		WordUtil.ChageFormat("D:/", "NETVIRSTV100R001 SIS_用户门户.doc");
	}
}

FolderPath为word存放路径。FileName为word名称。通过这个方法就把word文件转成的htm文件。这时候就可以用流来读取htm文件了,读出来的既不是乱码。并且带有格式。
另外要强调的是jacob这个组件和jdk,以及windows版本都有关系。所以版本一定要匹配。否则会报错。版本的问题就要挨个去试了。没有捷径可走。 

----------------------------------------------------------------------

我操作的环境:

win xp

jdk 1.6

下载的jar包:jacob_18.zip

----------------------------------------------------------------------

在main函数下运行没问题

通过页面一运行出现如下异常

org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665) at java.lang.Thread.run(Thread.java:619) Caused by: 
java.lang.NoClassDefFoundError: Could not initialize class com.jacob.activeX.ActiveXComponent at com.yigou.comm.WordUtil.ChageFormat(WordUtil.java:22) 
at com.yigou.web.actions.CategoryAction.uploaddoc(CategoryAction.java:376) at com.yigou.web.actions.CategoryAction.uploadfile(CategoryAction.java:322)
 ... 74 more 
解决办法:

将在放入jdk1.6.0_11\jre\bin/目录下,即可

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值