POI转换word doc文件为(html,xml,txt)

摘要:
在POI中,您还可以对worddoc文件执行格式转换。这些格式转换是通过AbstractWordConverter的特定子类完成的。1.通过WordToHtmlConverter类将文档转换为相应的Html文档。它将尝试使用Html来呈现原始文档的样式。示例代码:/***Word to Fo*@throwsException*/@TestpublicvoidtestWordToFo()throwsException{InputStreamis=newFileInputStream;HWPFDocumentwordDocument=newHWPFDocument;WordToFoConverter=newWordToFoConverter;//将HWPFDocument转换为converter.processDocument;Writer=newFileWriter;TransformerTransformer=TransformerFactory.newInstance().newTransformer() ; 变压器setOutputProperty;//是否添加空间变换器。setOutputProperty//转换器。setOutputProperty;变压器转换;}3.通过WordToTextConverter将文档转换为文本文档。它可以将文档转换为Xml格式的基础文本文档,用于描述文档。

在POI中还存在有针对于word doc文件进行格式转换的功能。我们可以将word的内容转换为对应的Html文件,也可以把它转换为底层用来描述doc文档的xml文件,还可以把它转换为底层用来描述doc文档的xml格式的text文件。这些格式转换都是通过AbstractWordConverter特定的子类来完成的。 

1 转换为Html文件

将doc文档转换为对应的Html文档是通过WordToHtmlConverter类进行的。它会尽量的利用Html的方式来呈现原文档的样式。示例代码:

   /**
    * Word转换为Html
    * @throws Exception
    */
   @Test
   public void testWordToHtml() throws Exception {
      InputStream is = new FileInputStream("D:\test.doc");
      HWPFDocument wordDocument = new HWPFDocument(is);
      WordToHtmlConverter converter = new WordToHtmlConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());
      //对HWPFDocument进行转换
      converter.processDocument(wordDocument);
        Writer writer = new FileWriter(new File("D:\converter.html"));
       Transformer transformer = TransformerFactory.newInstance().newTransformer();
       transformer.setOutputProperty( OutputKeys.ENCODING, "utf-8" );
       //是否添加空格
        transformer.setOutputProperty( OutputKeys.INDENT, "yes" );
       transformer.setOutputProperty( OutputKeys.METHOD, "html" );
       transformer.transform(
                   new DOMSource(converter.getDocument() ),
                   new StreamResult( writer ) );
   }

2 转换为Xml文件

       将doc文档转换为对应的Xml文件是通过WordToFoConverter类进行的。它可以把doc文档转换为底层用来描述doc文档的Xml文档。示例代码:

   /**
    * Word转Fo
    * @throws Exception
    */
   @Test
   public void testWordToFo() throws Exception {
      InputStream is = new FileInputStream("D:\test.doc");
      HWPFDocument wordDocument = new HWPFDocument(is);
      WordToFoConverter converter = new WordToFoConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());
      //对HWPFDocument进行转换
      converter.processDocument(wordDocument);
        Writer writer = new FileWriter(new File("D:\converter.xml"));
       Transformer transformer = TransformerFactory.newInstance().newTransformer();
       transformer.setOutputProperty( OutputKeys.ENCODING, "utf-8" );
       //是否添加空格
        transformer.setOutputProperty( OutputKeys.INDENT, "yes" );
//     transformer.setOutputProperty( OutputKeys.METHOD, "html" );
       transformer.transform(
                   new DOMSource(converter.getDocument() ),
                   new StreamResult( writer ) );
   }
 

3  转换为Text文件

       将doc文档转换为text文档是通过WordToTextConverter来进行的。它可以把doc文档转换为底层用于描述doc文档的Xml格式的text文档。示例代码:

   /**
    * Word转换为Text
    * @throws Exception
    */
   @Test
   public void testWordToText() throws Exception {
      InputStream is = new FileInputStream("D:\test.doc");
      HWPFDocument wordDocument = new HWPFDocument(is);
      WordToTextConverter converter = new WordToTextConverter(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());
      //对HWPFDocument进行转换
      converter.processDocument(wordDocument);
        Writer writer = new FileWriter(new File("D:\converter.txt"));
       Transformer transformer = TransformerFactory.newInstance().newTransformer();
       transformer.setOutputProperty( OutputKeys.ENCODING, "utf-8" );
       //是否添加空格
        transformer.setOutputProperty( OutputKeys.INDENT, "yes" );
       transformer.setOutputProperty( OutputKeys.METHOD, "text" );
       transformer.transform(
                   new DOMSource(converter.getDocument() ),
                   new StreamResult( writer ) );
   }

免责声明:文章转载自《POI转换word doc文件为(html,xml,txt)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇InfiniBand技术rds协议将本地jar包手动复制到Maven库中,在其它电脑上用Maven打包时出错下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

解决java POI导入Excel超时问题

由于要导入大量数据,后台会耗费很长时间,导致超时。 本项目前端request.js中设定的超时时间为150s. const service =axios.create({ baseURL: baseUrl, withCredentials: true, timeout: 150000}); 我们的做法是: 前端导入Excel向后台发...

JAVA合并word文档生成目录

下载jar包,或者引入相关maven maven引入相关地址:https://www.e-iceblue.cn/licensing/install-spirepdf-for-java-from-maven-repository.html jar包下载地址:点击下载 如果不知道怎么引入jar包到项目中,请面向百度。 如果word文档中已经设置了大纲就直接使用...

POI隐藏行 隐藏列,EasyExcel隐藏行 EasyExcel隐藏列

因为EasyExcel基于POI的所以隐藏行用的是POI的方式,代码如下 @Test public void test1() throws Exception { String excelPath = "F:\\temp\\SiPrintViewNew111.xls"; HSSFWorkbook workbook =...

java poi 设置边框

//获取工作簿 HSSFWorkbook hwb = new HSSFWorkbook(); //获取sheet HSSFSheet sheet = hwb.createSheet(); //获取样式对象 HSSFCellStyle cellStyle = hwb.createCellStyle(); //设置样式对象,这里仅设置了边框属性 cellSty...

深入剖析PHP输入流 php://input

另附一个一个连接: http://www.nowamagic.net/academy/detail/12220520 ///////////////////////////////////////////////////////////////另一种解释////////////////////////////////////////////////////...

Lucene中对document(记录)的CURD操作~为分布式全文检索设计

Lucene.net是.net环境中比较强的全文检索工具,它是从JAVA中转过来的,.net版本的lucene在功能上也豪不逊色于java版的lucene。今天主要来说一下lucene索引文件在更新时的一些方式。 一 整个索引文件 (cfs文件)覆盖更新;优点:简单,缺点:与服务器没有交互,但在生成索引文件时对IO影响比较大,前台lucene信息显示与数据...