应用POI,word2007转html

来源:互联网 发布:小米44g网络怎样设置 编辑:程序博客网 时间:2024/05/17 22:10

poi 3.9

http://poi.apache.org/

Java代码  收藏代码
  1. import java.io.File;  
  2. import java.io.FileInputStream;  
  3. import java.io.FileOutputStream;  
  4. import java.io.IOException;  
  5. import java.io.InputStream;  
  6. import java.io.OutputStream;  
  7.   
  8. import org.apache.poi.xwpf.converter.core.FileImageExtractor;  
  9. import org.apache.poi.xwpf.converter.core.FileURIResolver;  
  10. import org.apache.poi.xwpf.converter.xhtml.XHTMLConverter;  
  11. import org.apache.poi.xwpf.converter.xhtml.XHTMLOptions;  
  12. import org.apache.poi.xwpf.usermodel.XWPFDocument;  
  13. import org.apache.poi.xwpf.usermodel.XWPFPictureData;  
  14. //import org.junit.Assert;  
  15. //import org.junit.Test;  
  16.   
  17. public class word07toHtml {  
  18.   
  19.     //@Test  
  20.     public static void canExtractImage() throws IOException {  
  21.         File f = new File("d:/test/test.docx");  
  22.         if (!f.exists()) {  
  23.             System.out.println("Sorry File does not Exists!");  
  24.         } else {  
  25.             if (f.getName().endsWith(".docx") || f.getName().endsWith(".DOCX")) {  
  26.                   
  27.                 // 1) Load DOCX into XWPFDocument  
  28.                 InputStream in = new FileInputStream(f);  
  29.                 XWPFDocument document = new XWPFDocument(in);  
  30.   
  31.                 // 2) Prepare XHTML options (here we set the IURIResolver to  
  32.                 // load images from a "word/media" folder)  
  33.                 File imageFolderFile = new File("d:/test/media");  
  34.                 XHTMLOptions options = XHTMLOptions.create().URIResolver(  
  35.                         new FileURIResolver(imageFolderFile));  
  36.                 options.setExtractor(new FileImageExtractor(imageFolderFile));  
  37.                 //options.setIgnoreStylesIfUnused(false);  
  38.                 //options.setFragment(true);  
  39.                   
  40.                 // 3) Convert XWPFDocument to XHTML  
  41.                 OutputStream out = new FileOutputStream(new File(  
  42.                         "d:/test/test.htm"));  
  43.                 XHTMLConverter.getInstance().convert(document, out, options);  
  44.             } else {  
  45.                 System.out.println("Enter only MS Office 2007+ files");  
  46.             }  
  47.         }  
  48.     }  
  49.       
  50.     public static void main(String args[]) {  
  51.         try {  
  52.             canExtractImage();  
  53.         } catch (IOException e) {  
  54.             // TODO Auto-generated catch block  
  55.             e.printStackTrace();  
  56.         }  
  57.     }  
  58. }  

 

其中org.apache.poi.xwpf.converter需要扩展包

如果你的项目用到了maven做如下配置即可,若果没用maven,请从本文附件下载

1.0.4 对应的是 poi 3.9

1.0.0 对应的是 poi 3.8

import org.apache.poi.xwpf.converter.xhtml.XHTMLConverter;
import org.apache.poi.xwpf.converter.xhtml.XHTMLOptions;

所需jar包

Xml代码  收藏代码
  1. <dependencies>  
  2.     <dependency>  
  3.         <groupId> fr.opensagres.xdocreport</groupId>  
  4.         <artifactId> org.apache.poi.xwpf.converter.core</artifactId>  
  5.         <version> 1.0.4</version>  
  6.     </dependency>  
  7.     <dependency>  
  8.         <groupId> fr.opensagres.xdocreport</groupId>  
  9.         <artifactId> org.apache.poi.xwpf.converter.xhtml</artifactId>  
  10.         <version> 1.0.4</version>  
  11.     </dependency>  
  12. </dependencies>  

 

如果报错:

java.lang.ClassNotFoundException: org.openxmlformats.schemas.wordprocessingml.x2006.main.impl.CTSectPrImpl$1HeaderReferenceList

请添加 ooxml-schemas-1.1.jar

java.lang.ClassNotFoundException: org.openxmlformats.schemas.wordprocessingml.x2006.main.impl.CTBodyImpl$1TblList

也是需要 ooxml-schemas-1.1.jar

用maven的会自动下来,没用maven的请从本文附件下载ooxml-schemas-1.1.rar,需要解压

 

不过,发现转换后的table没有边框,有待解决


1 0
原创粉丝点击