Java读取word文档,转换为网页

 
  1. publicclassTest3{
  2. /**
  3. *
  4. *@parampath
  5. *@parampaths
  6. *@paramsavepaths
  7. */
  8. publicstaticvoidchange(Stringpath,Stringpaths,Stringsavepaths){
  9. Filed=newFile(paths);
  10. //取得当前文件夹下所有文件和目录的列表
  11. Filelists[]=d.listFiles();
  12. Stringpathss=newString("");
  13. //对当前目录下面所有文件进行检索
  14. for(inti=0;i<lists.length;i++){
  15. if(lists[i].isFile()){
  16. //得到doc文件名
  17. Stringfilename=lists[i].getName();
  18. //定义最简文件名
  19. Stringrealfilename=newString(filename.substring(0,
  20. (filename.length()-4)));
  21. //定义文件全名为路径加文件名
  22. Stringfullsavefilename=paths+realfilename;
  23. fullsavefilename=fullsavefilename.replace('/','_');///
  24. fullsavefilename=fullsavefilename.replace(':','@');
  25. //fullsavefilename=fullsavefilename.substring(47,
  26. //fullsavefilename.length());
  27. //定义文件类型
  28. Stringfiletype=newString("");
  29. filetype=filename.substring((filename.length()-3),
  30. filename.length());
  31. if(filetype.equals("doc")){
  32. System.out.println("--------/n当前正在转换......");
  33. //打印当前目录路径
  34. System.out.println(paths);
  35. //打印doc文件名
  36. System.out.println(realfilename);
  37. //启动word
  38. ActiveXComponentapp=newActiveXComponent(
  39. "Word.Application");
  40. Stringdocpath=paths+filename;
  41. Stringtxtpath=savepaths+fullsavefilename+".htm";
  42. //格式化文件名
  43. txtpath=formatname(txtpath);
  44. //将中文文件名改为拼音
  45. txtpath=pinyin(path,txtpath);
  46. //要转换的word文件
  47. StringinFile=docpath;
  48. //txt文件
  49. StringtpFile=txtpath;
  50. booleanflag=false;
  51. try{
  52. //设置word不可见
  53. app.setProperty("Visible",newVariant(false));
  54. Objectdocs=app.getProperty("Documents").toDispatch();
  55. //打开word文件
  56. Objectdoc=Dispatch.invoke(
  57. (Dispatch)docs,
  58. "Open",
  59. Dispatch.Method,
  60. newObject[]{inFile,newVariant(false),
  61. newVariant(true)},newint[1])
  62. .toDispatch();
  63. //作为txt格式保存到临时文件
  64. Dispatch.invoke((Dispatch)doc,"SaveAs",
  65. Dispatch.Method,newObject[]{tpFile,
  66. newVariant(10)},newint[1]);
  67. Variantf=newVariant(false);
  68. Dispatch.call((Dispatch)doc,"Close",f);
  69. flag=true;
  70. }catch(Exceptione){
  71. e.printStackTrace();
  72. }finally{
  73. app.invoke("Quit",newVariant[]{});
  74. }
  75. System.out.println("转化完毕!/n--------");
  76. }
  77. }else{
  78. pathss=paths;
  79. //进入下一级目录
  80. pathss=pathss+lists[i].getName()+"//";
  81. //递归遍历所有目录
  82. change(path,pathss,savepaths);
  83. }
  84. }
  85. }
  86. publicstaticStringformatname(Stringname){
  87. name=name.replace('、','_');
  88. name=name.replace(')',')');
  89. name=name.replace('(','(');
  90. returnname;
  91. }
  92. publicstaticStringpinyin(Stringpath,Stringhanzi){
  93. Filef=newFile(path);
  94. Stringpinyin=newString("");
  95. pinyin=hanzi;
  96. try{
  97. FileReaderfr=newFileReader(f);
  98. BufferedReaderbr=newBufferedReader(fr);
  99. Stringline=newString("");
  100. line=br.readLine();
  101. intcount=0;
  102. intlocation=0;
  103. while(line!=null){
  104. while(pinyin.indexOf(line.charAt(0))!=-1){
  105. location=pinyin.indexOf(line.charAt(0));
  106. pinyin=pinyin.substring(0,location)
  107. +line.substring(1,2)
  108. +pinyin.substring(location+1,pinyin.length());
  109. }
  110. line=br.readLine();
  111. System.out.print("/b/b/b/b/b/b"+count++);
  112. }
  113. fr.close();
  114. br.close();
  115. }catch(Exceptione){
  116. //System.err.println(e);
  117. }
  118. returnpinyin;
  119. }
  120. publicstaticvoidmain(String[]args){
  121. Stringpaths=newString("e://360Downloads//");
  122. Stringsavepaths=newString("e://360Downloads//Video//");
  123. Stringpath=newString("e://360Downloads//pinyin.doc");
  124. change(path,paths,savepaths);
  125. }
  126. }

下载jacob.rar,解压出jacob.dll和jacob.jar

然后:
1) 把jacob.dll在 C:\Program Files\Java\jdk1.5.0_08\bin、C:\Program Files\Java\jdk1.5.0_08\jre\bin、C:\WINDOWS\system32 目录下各.放一份
2) 把jacob.jar放入 项目的lib包下,并且在“java构建路径”中也要加载此jar包。.
3) 运行项目即可编译通过.


注:
1)这样配置后不需要再配置环境变量(如:path,classpath)了.
详见附件

本文出自 “阿凡达” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/833580

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值