展开全部

用jacob吧。。

/**

*@author eyuan

*/

package per.eyuan.word2txt.core;

import com.jacob.*;

import com.jacob.com.*;

import com.jacob.activeX.*;

import java.io.*;

import java.util.Scanner;

public class Core {

/**

* 实现转换的函e5a48de588b662616964757a686964616f31333433623837数

* @param sourceFilesPath

* @param destinationFilesPath

* @param destinationFilesType

* @return void

* @see import com.jacob.activeX.*;

*/

public static void change(String sourceFilesPath,String destinationFilesPath,int destinationFilesType){

//使用word文件所在的目录(源路径)建立目录文件

File sourcePathFile=new File(sourceFilesPath);

//取得word文件(源文件列表)

File sourceFilesList[]=sourcePathFile.listFiles();

System.out.println("共有"+sourceFilesList.length+"个文件(文件夹)");

//指定要转换的文件所在的目录下,如果有子目录,

//则进入子目录,继续查找word文档并将其转换,

//直到将指定目录下的所有word文档转换完。

//子目录名

String sourceChildPath=new String("");

//保持原来的层次关系,将子目录下的文件存放在新建的子目录中

String destiNationChildPath=new String("");

//检索文件,过滤掉非word文件,通过扩展名过滤

for(int i=0;i

//排除掉子文件夹

if(sourceFilesList[i].isFile()){

System.out.println("第"+(i+1)+"个文件:");

//取得文件全名(包含扩展名)

String fileName=sourceFilesList[i].getName();

String fileType=new String("");

//取得文件扩展名

fileType=fileName.substring((fileName.length()-4), fileName.length());

//word2007-2010扩展名为docx

//判断是否为word2007-2010文档,及是否以docx为后缀名

if(fileType.equals("docx")){

System.out.println("正在转换。。。");

//输出word文档所在路劲

System.out.println("目录:"+sourceFilesPath);

//输出word文档名

System.out.println("文件名:"+fileName);

//System.out.println(fileName.substring(0, (fileName.length()-5)));

//核心函数

//启动word

ActiveXComponent app=new ActiveXComponent("Word.Application");

//要转换的文档的全路径(所在文件夹+文件全名)

String docPath=sourceFilesPath+"\\"+fileName;

//转换后的文档的全路径(所在文件夹+文件名)

String othersPath=destinationFilesPath+"\\"+fileName.substring(0,(fileName.length()-5));

//

String inFile=docPath;

String outFile=othersPath;

//

boolean flag=false;

//核心代码

try{

//设置word可见性

app.setProperty("Visible", new Variant(false));

//

Dispatch docs=app.getProperty("Documents").toDispatch();

//打开word文档

Dispatch doc=Dispatch.invoke(docs, "Open", Dispatch.Method, new Object[]{inFile,new Variant(false),new Variant(true)}, new int[1]).toDispatch();

//0:Microsoft Word 97 - 2003 文档 (.doc)

//1:Microsoft Word 97 - 2003 模板 (.dot)

//2:文本文档 (.txt)

//3:文本文档 (.txt)

//4:文本文档 (.txt)

//5:文本文档 (.txt)

//6:RTF 格式 (.rtf)

//7:文本文档 (.txt)

//8:HTML 文档 (.htm)(带文件夹)

//9:MHTML 文档 (.mht)(单文件)

//10:MHTML 文档 (.mht)(单文件)

//11:XML 文档 (.xml)

//12:Microsoft Word 文档 (.docx)

//13:Microsoft Word 启用宏的文档 (.docm)

//14:Microsoft Word 模板 (.dotx)

//15:Microsoft Word 启用宏的模板 (.dotm)

//16:Microsoft Word 文档 (.docx)

//17:PDF 文件 (.pdf)

//18:XPS 文档 (.xps)

//19:XML 文档 (.xml)

//20:XML 文档 (.xml)

//21:XML 文档 (.xml)

//22:XML 文档 (.xml)

//23:OpenDocument 文本 (.odt)

//24:WTF 文件 (.wtf)

//另存为指定格式的文档

Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[]{outFile,new Variant(destinationFilesType)}, new int[1]);

//

Variant file=new Variant(false);

//关闭文档

Dispatch.call(doc, "Close",file);

//

flag=true;

}catch(Exception e){

e.printStackTrace();

System.out.println("文档转换失败");

}finally{

app.invoke("Quit",new Variant[]{});

}

System.out.println("转换完毕");

}

//word97-2003扩展名为doc

//判断是否为word2003-2007文档,及是否以doc为后缀名

else if(fileType.equals(".doc")){

System.out.println("正在转换。。。");

//输出word文档所在路劲

System.out.println("目录:"+sourceFilesPath);

//输出word文档名

System.out.println("文件名:"+fileName);

//System.out.println(fileName.substring(0, (fileName.length()-4)));

//核心函数

//启动word

ActiveXComponent app=new ActiveXComponent("Word.Application");

//要转换的文档的全路径(所在文件夹+文件全名)

String docPath=sourceFilesPath+"\\"+fileName;

//转换后的文档的全路径(所在文件夹+文件名)

String othersPath=destinationFilesPath+"\\"+fileName.substring(0,(fileName.length()-4));

//

String inFile=docPath;

String outFile=othersPath;

//

boolean flag=false;

//核心代码

try{

//设置word可见性

app.setProperty("Visible", new Variant(false));

//

Dispatch docs=app.getProperty("Documents").toDispatch();

//打开word文档

Dispatch doc=Dispatch.invoke(docs, "Open", Dispatch.Method, new Object[]{inFile,new Variant(false),new Variant(true)}, new int[1]).toDispatch();

//另存为指定格式的文档

Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[]{outFile,new Variant(destinationFilesType)}, new int[1]);

//

Variant file=new Variant(false);

//关闭文档

Dispatch.call(doc, "Close",file);

//

flag=true;

}catch(Exception e){

e.printStackTrace();

System.out.println("文档转换失败");

}finally{

app.invoke("Quit",new Variant[]{});

}

System.out.println("转换完毕");

}

//文档的扩展名不是doc或docx

else{

System.out.println("非word文档");

}

}

//如果是子文件夹,则递归遍历,将所有的word文档转换

else{

//

sourceChildPath=sourceFilesPath;

//该文件是目录

sourceChildPath=sourceChildPath+"\\"+sourceFilesList[i].getName()+"\\";

System.out.println("源文件所在路径:"+sourceChildPath);

//修改目标文件夹,保持原来的层级关系

destiNationChildPath=destinationFilesPath;

destiNationChildPath=destinationFilesPath+"\\"+sourceFilesList[i].getName()+"\\";

System.out.println("转换后文件所在路径"+destiNationChildPath);

//

mkdir(destiNationChildPath);

//递归遍历所有目录,查找word文档,并将其转换

change(sourceChildPath, destiNationChildPath,destinationFilesType);

}

}

System.out.println("所有文档转换完毕");

}

/**

* 用于创建文件夹的方法

* @param mkdirName

*/

public static void mkdir(String mkdirName){

try{

//使用指定的路径创建文件对象

File dirFile = new File(mkdirName);

//

boolean bFile = dirFile.exists();

//已经存在文件夹,操作???提醒是否要替换

if( bFile == true ) {

System.out.println("已经存在文件夹"+mkdirName);

}

//不存在该文件夹,则新建该目录

else{

System.out.println("新建文件夹"+mkdirName);

bFile = dirFile.mkdir();

if( bFile == true ){

System.out.println("文件夹创建成功");

}else{

System.out.println(" 文件夹创建失败,清确认磁盘没有写保护并且空件足够");

System.exit(1);

}

}

}catch(Exception err){

System.err.println("ELS - Chart : 文件夹创建发生异常");

err.printStackTrace();

}finally{

}

}

/**

* 判断某个文件夹是否存在

* @param path

*/

public static boolean isPathExist(String path){

boolean isPathExist=false;

try{

File pathFile = new File(path);

if(pathFile.exists())

isPathExist= true;

else

isPathExist= false;

}catch(Exception err){

err.printStackTrace();

}

return isPathExist;

}

/**

* 主函数

*/

public static void main(String[] args){

Scanner sc=new Scanner(System.in);

//源文档所在路径

String sourceFilesPath="";

//String inputSourcePath="";

//boolean sourcePathFlag=true;

//System.out.println("请输入要转换文档所在的文件夹");

//while(sourcePathFlag){

//inputSourcePath=sc.next();

//if(!isPathExist(inputSourcePath))

//System.out.println("源路径不存在,请输入正确的路径");

//else

//sourcePathFlag=false;

//}

//sourceFilesPath=inputSourcePath;

sourceFilesPath="D:\\word";

//目标文档要存放的目录

String destinationFilesPath="";

//String inputdestinationPath="";

//boolean destinationPathFlag=true;

//System.out.println("请输入转换后文档要存放的文件夹");

//while(destinationPathFlag){

//inputdestinationPath=sc.next();

目标文件不存在时,是否要提示用户创建文件

//if(!isPathExist(inputdestinationPath))

//System.out.println("目标路径不存在,请输入正确的路径");

//else

//destinationPathFlag=false;

//}

//destinationFilesPath=inputdestinationPath;

destinationFilesPath="D:\\txt";

//选择要转换的类型

int destinationFilesType=0;

int inputNumber=0;

boolean numFlag=true;

System.out.println("您要将word文档转换为哪种文档格式?");

System.out.println("0:doc \t 2:txt \t 8:html \t 9:htm \t 11:xml \t 12:docx \t 17:pdf \t 18:xps");

while(numFlag){

inputNumber=sc.nextInt();

if(inputNumber!=2&&inputNumber!=8&&inputNumber!=9&&inputNumber!=11&&inputNumber!=12&&inputNumber!=17){

System.out.println("您的输入有误,请输入要转换的文档类型前的数字");

}else

numFlag=false;

}

destinationFilesType=inputNumber;

//实行转换

change(sourceFilesPath, destinationFilesPath,destinationFilesType);

//测试各种类型转换

//for(int i=0;i<25;i++){

//destinationFilesType=i;

//System.out.println("文件类型"+destinationFilesType);

//System.out.println("存放目录:"+destinationFilesPath+"\\"+i);

//mkdir(destinationFilesPath+"\\"+i);

//change(sourceFilesPath, destinationFilesPath+"\\"+i,destinationFilesType);

//}

}

}

这个我刚用的。。格式都能带过来的。 你自己再下载个 jacob的包和dll文件

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

java 读取xps_java读取带格式word内容相关推荐

  1. Java读写word带样式,java将html导出带样式word文档

    java怎么由html生成word,保留html样式 @RequestMapping("download")public void exportWord( HttpServletRequest req ...

  2. java读取带格式word文档_Java读取word文档解决方案

    java读取word文档时,虽然网上介绍了很多插件poi.java2Word.jacob.itext等等,poi无法读取格式(新的API估计行好像还在处于研发阶段,不太稳定,做项目不太敢用):java ...

  3. Java使用模板导出带图片word文档

    之前已经写过一个 Java使用模板导出Word文档 由于系统升级,模板得添加图片,这个时候遇到了一个比较恶心的问题特地发文记录一下. 先把老模板翻出来 **.ftl 然后右键用wps或者office打 ...

  4. java 校验 json_java校验json格式及内容

    展开全部 ||代码如下 import java.text.CharacterIterator; import java.text.StringCharacterIterator; public cla ...

  5. java io读取doc内容_Java word 内容读取-Go语言中文社区

    1.添加依赖关系(网上好多帖子没有写依赖,害我找半天) org.apache.poi poi 4.0.0 org.apache.poi poi-ooxml 4.0.0 org.apache.poi p ...

  6. java改文字乱码快捷键,java.util.Properties读取中文内容(UTF-8格式)的配置文件,发生中文乱码...

    转自 http://blog.csdn.net/zhangzikui/article/details/7708827 碰到了用java.util.Properties读取中文内容(UTF-8格式)的配 ...

  7. Java word 内容读取

    1.添加依赖关系(网上好多帖子没有写依赖,害我找半天) <dependency>             <groupId>org.apache.poi</groupId ...

  8. java poi无法读取word_poi,word_POI读取word内容的疑问,poi,word,java - phpStudy

    POI读取word内容的疑问 两片内容相同的word,poi分割成XWPFRun集合的时候,发现相同的段落内容有空行. word1打印的段落内容 word2打印的段落内容 代码如下 /** 替换段落中 ...

  9. python导入word转换的html,python如何转换word格式、读取word内容、转成html

    # python如何转换word格式.读取word内容.转成html? import docx from win32com import client as wc # 首先将doc转换成docx wo ...

  10. java按需读取word文件_干货分享:ASP.NET CORE(C#)与Spring Boot MVC(JAVA)异曲同工的编程方式总结...

    我(梦在旅途,http://zuowj.cnblogs.com; http://www.zuowenjun.cn)最近发表的一篇文章<.NET CORE与Spring Boot编写控制台程序应有 ...

最新文章

  1. HTML语言的含义,HTML是什么意思
  2. Uber 开源 Piranha,可自动删除过时代码
  3. mysql算法优化原则_Mysql优化原则_小表驱动大表IN和EXISTS的合理利用
  4. 结构体中的自然对界法则
  5. 【无码专区2】序列划分(数学)
  6. RocketMQ这样做,压测后性能提高30%
  7. map按kye排序 按value排序
  8. spring session的生命周期
  9. python装饰器应用_Python装饰器实现方法及应用场景详解
  10. 讯时网关IP对接PBX
  11. Java 高效编程之 Builder 模式
  12. PHP网站开发的流程步骤
  13. 工业机器人 郝卫东_基于S3C2410的视觉巡线机器人系统设计
  14. strlen源码分析
  15. 作文 我眼中的计算机1000字,我眼中的自己作文范文1000字(精选6篇)
  16. 钉钉机器人+Mac定时Launchctl
  17. 【Python】—— pipenv使用小结
  18. Android界面美化的一点点积累
  19. [unity]在unity中创建圆锥体
  20. Arduino云植物自动浇水

热门文章

  1. java学习——java面试【事务、锁、多线程】资料整理
  2. Python爬虫:对Uniqlo、Zara、HM等快销品牌的门店数量作统计并展示
  3. pip install -Uqq 是什么意思?
  4. 有哪些方式加速大数据查询速度
  5. 0门槛操作SEO快排代做项目 无需SEO基础
  6. 如何使用 Web Speech API 在浏览器中识别语音
  7. 机器学习 数据预处理之特征编码(归纳整理版)
  8. 2022最新软件测试面试题,看完还怕拿不到offer?
  9. 同比和环比计算公式?
  10. 【Java基础】Java网络编程基础