欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jacob:word转Html,PDF

程序员文章站 2022-06-03 09:05:43
...

 

   1.下载jacob,http://sourceforge.net/projects/jacob-project/

   2.安装office软件(jacob只能运行在window系统上)

   3.将jacob.jar复制到工程lib下,将jacob-xxxx.dll复制到JAVA_HOME\bin目录下

    

   一、word转html
   

	public static final int WORD_HTML = 8;
	public static final int WORD_TXT = 7;
	public static final int EXCEL_HTML = 44;
	public static boolean wordToHtml(String fileDoc, String fileHtml) {
		ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
		try {
			// 设置word不可见
			app.setProperty("Visible", new Variant(false));
			// 获得documents对象
			Dispatch docs = (Dispatch) app.getProperty("Documents")
					.toDispatch();
			// 打开文件
			Dispatch doc = Dispatch.invoke(
					docs,
					"Open",
					Dispatch.Method,
					new Object[] { fileDoc, new Variant(false),
							new Variant(true) }, new int[1]).toDispatch();
			// 保存新的文件
			Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
					fileHtml, new Variant(WORD_HTML) }, new int[1]);
			Variant f = new Variant(false);
			Dispatch.call(doc, "Close", f);
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		} finally {
			app.invoke("Quit", new Variant[] {});
		}
	}

 

   二、word转PDF

   

	private static final int NOTSAVECHANGE = 0;
	private static final int PDF = 17;
	public static void wordToPDF(String fileDoc, String filePDF) {
		ActiveXComponent app = null;
		try {
			app = new ActiveXComponent("Word.Application");
			app.setProperty("Visible", false);

			Dispatch docs = app.getProperty("Documents").toDispatch();
			Dispatch doc = Dispatch.call(docs,"Open",fileDoc,false,true).toDispatch();
			//读取全文内容
			Dispatch content = Dispatch.get(doc, "Content").toDispatch();
			String text = Dispatch.get(content, "Text").toString();
			File f = new File(filePDF);
			if (f.exists()) {
				f.delete();
			}
			Dispatch.call(doc,"SaveAs",filePDF,PDF);
			Dispatch.call(doc, "Close", false);
			
		} catch (Exception e) {
			
			e.printStackTrace();
			
		} finally {
			if (app != null){
				app.invoke("Quit", NOTSAVECHANGE);
			}
		}
	}