参照:http://www.cnblogs.com/qingxinblog/articles/3399454.html
1,必要条件: 服务器为windows,必须安装office 使用jacob进行中间件调用com组件打开word进程 另存文档为其他格式
2,注意条件:使用eclipse必须将jacob的jar包添加到项目 并add build path ,同时将jacob的dll 文件放置到JAVA_HOME\jre\bin中,如果为部署服务 将jar包放置到WEB_INF下的Lib目录
代码如下:
1 package demo; 2 3 import java.io.IOException; 4 import javax.servlet.ServletException; 5 import javax.servlet.http.HttpServlet; 6 import javax.servlet.http.HttpServletRequest; 7 import javax.servlet.http.HttpServletResponse; 8 import com.jacob.com.*; 9 import com.jacob.activeX.*; 10 11 public class hdzServlet extends HttpServlet{ 12 13 protected void service (HttpServletRequest req, HttpServletResponse res) 14 throws ServletException, IOException { 15 res.getWriter().println("ni hao hdz!"); 16 String docfile = "F:\\123.doc"; 17 String htmlfile = "F:\\123.pdf"; 18 hdzServlet.wordToHtml(docfile, htmlfile); 19 20 } 21 22 public static final int WORD_HTML = 5; 23 24 /** 25 * WORD转HTML 26 * @param docfile WORD文件全路径 27 * @param htmlfile 转换后HTML存放路径 28 */ 29 public static void wordToHtml(String docfile, String htmlfile) 30 { 31 // 启动word应用程序(Microsoft Office Word 2003) 32 ActiveXComponent app = new ActiveXComponent("Word.Application"); 33 System.out.println("*****正在转换...*****"); 34 try 35 { 36 // 设置word应用程序不可见 37 app.setProperty("Visible", new Variant(false)); 38 // documents表示word程序的所有文档窗口,(word是多文档应用程序) 39 Dispatch docs = app.getProperty("Documents").toDispatch(); 40 // 打开要转换的word文件 41 Dispatch doc = Dispatch.invoke( 42 docs, 43 "Open", 44 Dispatch.Method, 45 new Object[] { docfile, new Variant(false), 46 new Variant(true) }, new int[1]).toDispatch(); 47 // 作为html格式保存到临时文件 48 Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] { 49 htmlfile, new Variant(WORD_HTML) }, new int[1]); 50 // 关闭word文件 51 Dispatch.call(doc, "Close", new Variant(false)); 52 } 53 catch (Exception e) 54 { 55 e.printStackTrace(); 56 } 57 finally 58 { 59 //关闭word应用程序 60 app.invoke("Quit", new Variant[] {}); 61 } 62 System.out.println("*****转换完毕********"); 63 } 64 65 66 }
时间: 2024-10-28 10:15:13