jacob Word转html 解决图片无法显示

查资料网上有很多博客里有教程里讲这个方法,教程中的代码基本雷同,不知是从国外那个网站流传进来被国内入门级玩家传播开来,使用过程中普遍都是只知其然不知所以然。随手找来一个操作,基本可以保证成功,例如这篇http://blog.csdn.net/liugenghao3048/article/details/8771673

我按着操作之后,基本能够成功转换,但是有一个问题,通过这种方法转出的html中图片是用v:shape标签包起来,而不是以img标签包起来,导致无法显示标签。搜了一下很多人说是路径不对,我点击v:shape中的路径却可以直接打开图片。按理说调用ActiveX转换的话,应该是和在word里面手动另存为转换的是一样的,我怀疑可能是另存为的选项不对导致的,于是我手动在word里面将可以转换的html格式一一转换,与代码转换的进行对比,word支持的html格式如下图红色框框的部分:



果然,发现代码转换的文件同上述红框中”网页(*.html;*.html)“的格式是一样的,而这种格式就是上述提到的无法正常显示图片的格式,最下面一个”筛选过的网页(*.html;*.html)“才是可以正常显示网页的。那么就需要修改另存为选项了。查阅微软的MSDN中关于ActiveX Document的API可以找到其支持的另存为格式与对应的参数,支持的格式见,这个地址是针对Office2007的msdn:http://msdn.microsoft.com/en-us/library/bb238158(v=office.12).aspx

其中wdFormatFilteredHTML 格式就对应上述图片中”筛选过的网页(*.html;*.html)“类型,其对应的值是10,那么修改广泛流传的jacob word转html教程中的对应的部分就可以成功显示了,不明白为什么那么多人号称使用教程都成功进行转换了,世界真奇妙。当然,运行代码之前需要将环境配置好,包括需要的dll和jar包的配置,以及安装MS Office。

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

public class App 
{
    public static void main( String[] args )
    {
		wordToHtml("c:/test.doc","c:/test/jacob.html");
    }
    
public static boolean wordToHtml (String inPath,String toPath) { 
    
		//启动word  
		ActiveXComponent axc = new ActiveXComponent("Word.Application");  
		boolean flag = false;  
		try {
		//后台执行,不显示word界面
		axc.setProperty("Visible",new Variant(false));  
		     
		Dispatch docs = axc.getProperty("Documents").toDispatch();  
		     
		//打开word文档  
		Dispatch doc = Dispatch.invoke(docs,"Open",Dispatch.Method,
				new Object[]{inPath,new Variant(false), 
				new Variant(true)},new int[1]).toDispatch();
		
		//作为html保存到文件  
		Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
		toPath, new Variant(10) }, new int[1]); 	//这里的new Variant(10)中的初始化值是10,而不是8
		Variant f = new Variant(false);  
		Dispatch.call(doc, "Close", f);  
		flag = true;  
		return flag;  
		    
		} catch (Exception e) {  
		e.printStackTrace();  
		return flag;  
		} finally{  
		axc.invoke("Quit", new Variant[] {});  
		}
	}
}


发布了8 篇原创文章 · 获赞 0 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览