我的日常

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 盖世程序员 > java如何将word文档转html
总共48086条微博

动态微博

查看: 1984|回复: 0

java如何将word文档转html

[复制链接]

279

主题

41

听众

689

金钱

版主

该用户从未签到

跳转到指定楼层
楼主
发表于 2015-04-10 23:06:20 |只看该作者 |倒序浏览

有需求,就会有相应的技术出现,以前知道word可以用来书写html网页,那自然就可以转成html页面,难道我们要用word开发html页面吗?

你可能会问,我为什么要把word转成html?是的,开始我也很不理解为什么会有这样的需求。

+ M3 J3 Y0 a# ]) {' p, Q" e

后来,我竟然真的迫切地需要一个这样的功能,把word直接转成html,挂入我们的网站。

+ I- ~" b1 b( i2 Q8 h

我们要自己的oa系统,有很多经验分享要挂在oa系统上,但这些经验很多都是以word文档的形式保存的。如何能在线预览?

有很多方式,比如转为flash等等,但都太复杂了。

我想到了一种变通的方式,即提前把word转换为html,预览的时候,直接返回这个html即可,当然不能手工转,要借助工具,即jacob

: _: t" r* H( N4 I; M* p) }# S# Q

详见如下DEMO:

# ?5 N9 k- X  E" i( B

1、导入jacob.jar

2、核心测试代码

  1. import com.jacob.activeX.ActiveXComponent;
    ; x1 m5 n& ]+ c% K+ j. F
  2. import com.jacob.com.Dispatch;+ h# ?1 I7 o0 I: m7 J1 [1 ^
  3. import com.jacob.com.Variant;
    & _) ]( Y" p4 F

  4. ' C  _/ t, q, ?$ f, o/ N7 s
  5. /**6 \7 d5 K+ F  h3 k" B6 m# W
  6. * ( T% b% y0 r; M) [
  7. *
    # i  @' S5 \% n$ X, S9 A
  8. * @author jialin
    6 \2 {* t, L& z, [
  9. * @since 2015-3-27
    : }( r. i; p! ]3 q! p) p" `
  10. */5 d* ]$ f, s* ?) N8 J6 i0 \7 s
  11. public class word2html {
    : q  x5 t! {8 g% ~3 `
  12.         public static boolean wordToHtml(String inPath, String toPath) {
    & p; E) Y! R9 o+ E
  13.                 // 启动word
    6 Z- _2 ^& T, C# T. ]  w
  14.                 ActiveXComponent axc = new ActiveXComponent("Word.Application");
    4 o: y) r- X3 K! M3 k5 _( A

  15. 3 H8 o3 e4 H$ {- }$ {- `0 v" w
  16.                 boolean flag = false;
    , {$ }2 N) R$ Q) _+ d/ l/ f" O6 c. K
  17. ) j' a. A& \5 @, X+ h$ X3 q
  18.                 try {; W! p' Y5 h3 D0 {: v( V, r
  19.                         // 设置word不可见
    " @% I' Y: E4 `
  20.                         axc.setProperty("Visible", new Variant(false));/ C; [" Y8 l, A' w2 e3 G: X% A

  21. 9 n: u* Y4 i" f/ E
  22.                         Dispatch docs = axc.getProperty("Documents").toDispatch();
    3 c: N: v2 z9 b8 Z9 A
  23. % s+ n. z: i1 f4 h- V. K# s9 ]( G
  24.                         // 打开word文档
      a3 ~- f+ P# v2 k! w
  25.                         Dispatch doc = Dispatch.invoke(
    4 q# T: {$ N& i: Q2 f! K+ l& g
  26.                                         docs,
    ) d. v6 r7 Q+ \) C  L. m* w9 H
  27.                                         "Open",: A, L. c! P4 Q& A! x/ f
  28.                                         Dispatch.Method,! i/ A2 ^) F  o' U) i6 y7 f, e' t
  29.                                         new Object[] { inPath, new Variant(false),6 U, J7 A/ r! e/ u% i1 U7 Y
  30.                                                         new Variant(true) }, new int[1]).toDispatch();
    7 F2 o& f- h; ~0 S3 [
  31. + E' H* d/ W6 s& i( m6 b
  32.                         // 作为html格式保存到临时文件7 j& o7 J9 W+ ?( c  Z7 W
  33.                         Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
    ) y/ Y! Z3 m8 a3 J' V5 {' f
  34.                                         toPath, new Variant(8) }, new int[1]);
    ) D( Y3 G+ h' k2 |
  35. & r/ p( ?0 Q) f4 c% f
  36.                         Variant f = new Variant(false);* [6 R0 A; j% Z2 b- M
  37.                         Dispatch.call(doc, "Close", f);& l& c" y$ D5 ?9 `3 ]2 Y! @
  38.                         flag = true;
    1 X! Z0 F8 L0 p$ u2 Q$ f
  39.                         return flag;8 G0 U* ^" t; d. p4 y1 ~+ l% d

  40. " o/ F: I; N& @' P
  41.                 } catch (Exception e) {
    & z$ Y6 M; J# X# Q8 p
  42.                         e.printStackTrace();
    6 ~* T2 U4 Z' Z$ d4 y& o' {9 b3 z
  43.                         return flag;8 U5 ]1 ]3 g& e/ ~/ ^* v) [
  44.                 } finally {; @- g+ w' f* b
  45.                         axc.invoke("Quit", new Variant[] {});
    9 q  a5 T  h8 `4 ~; v
  46.                 }
    3 T# D* E8 F1 Q5 Z! M" p/ o0 D
  47.         }
    ; l% p/ _+ p$ u- D+ S- F% p( H2 F% y
  48. 9 @. W/ A, k9 i. s5 t- m, s8 r
  49.         public static void main(String[] args) {
    4 i% G3 u/ u$ P
  50.         6 {- D7 y3 P4 }! t5 q7 N  N8 n
  51.         word2html.wordToHtml("E://01_Document//ths_project//webservice//webservice_invoke_help.docx",
    . |; A" ^/ V# r8 A' K
  52.                                 "E://01_Document//ths_project//webservice//webservice_invoke_help.htm");
    * [% _" Y, w1 v0 k" X+ I* ]0 \
  53. . k- r) W9 Z* o6 y
  54.         }
    7 {7 L1 k. r" D* t8 L$ k* j9 \, X
  55. }
复制代码

5 Z: G& d- p: H9 l' H7 h6 r/ s& v5 g& O( O
- E( O8 {- E( N4 z


2 H' X, ?: [, N$ v

科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、科帮网管理员和版主有权不事先通知发贴者而删除本文


JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

快速回复
您需要登录后才可以回帖 登录 | 立即注册

   

关闭

站长推荐上一条 /1 下一条

发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
快速回复 返回顶部 返回列表