HTML转为word

57 篇文章 0 订阅
7 篇文章 0 订阅

html内容转化为Word文档

有两种方式实现:

一.apache.poi

代码如下:

public static boolean writeWordFile() {
		boolean w = false;
		String path = "d:/";
		try {
			if (!"".equals(path)) {
				// 检查目录是否存在
				File fileDir = new File(path);
				if (fileDir.exists()) {
					// 生成临时文件名称
					String fileName = "a.doc";
					String content = "<html><div style=\"text-align: center\"><span style=\"font-size: 28px\"><span style=\"font-family: 黑体\">" +
						"制度发布通知<br /> <br /> </span></span></div></html>";
					byte b[] = content.getBytes();
					ByteArrayInputStream bais = new ByteArrayInputStream(b);
					POIFSFileSystem poifs = new POIFSFileSystem();
					DirectoryEntry directory = poifs.getRoot();
					DocumentEntry documentEntry = directory.createDocument("WordDocument", bais);
					FileOutputStream ostream = new FileOutputStream(path+ fileName);
					poifs.writeFilesystem(ostream);
					bais.close();
					ostream.close();
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
	  }
	  return w;
	}

二.JACOB方式

notes:jacob包需要将jacob.dll放到windows/system32下

代码如下:

public static void htmlToWord(String html, String docFile) {  
		ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word      
		try {  
			app.setProperty("Visible", new Variant(false));  
			Dispatch docs = app.getProperty("Documents").toDispatch();  
			Dispatch doc = Dispatch.invoke(docs, "Open", Dispatch.Method, new Object[] { html, new Variant(false), new Variant(true) }, new int[1]).toDispatch();  
			Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] { docFile, new Variant(1) }, new int[1]);  
			Variant f = new Variant(false);  
			Dispatch.call(doc, "Close", f);  
		} catch (Exception e) {  
			e.printStackTrace();  
		} finally {  
			app.invoke("Quit", new Variant[] {});  
			ComThread.Release();  
		}  
	} 
	public static void main(String[] args){
		 String fileName = "D:\\a.doc";
	     String content = "D:\\a.html";
	     htmlToWord(content,fileName);
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值