poi 3.9
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.poi.xwpf.converter.core.FileImageExtractor;
import org.apache.poi.xwpf.converter.core.FileURIResolver;
import org.apache.poi.xwpf.converter.xhtml.XHTMLConverter;
import org.apache.poi.xwpf.converter.xhtml.XHTMLOptions;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFPictureData;
//import org.junit.Assert;
//import org.junit.Test;
public class word07toHtml {
//@Test
public static void canExtractImage() throws IOException {
File f = new File("d:/test/test.docx");
if (!f.exists()) {
System.out.println("Sorry File does not Exists!");
} else {
if (f.getName().endsWith(".docx") || f.getName().endsWith(".DOCX")) {
// 1) Load DOCX into XWPFDocument
InputStream in = new FileInputStream(f);
XWPFDocument document = new XWPFDocument(in);
// 2) Prepare XHTML options (here we set the IURIResolver to
// load images from a "word/media" folder)
File imageFolderFile = new File("d:/test/media");
XHTMLOptions options = XHTMLOptions.create().URIResolver(
new FileURIResolver(imageFolderFile));
options.setExtractor(new FileImageExtractor(imageFolderFile));
//options.setIgnoreStylesIfUnused(false);
//options.setFragment(true);
// 3) Convert XWPFDocument to XHTML
OutputStream out = new FileOutputStream(new File(
"d:/test/test.htm"));
XHTMLConverter.getInstance().convert(document, out, options);
} else {
System.out.println("Enter only MS Office 2007+ files");
}
}
}
public static void main(String args[]) {
try {
canExtractImage();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
其中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包
<dependencies>
<dependency>
<groupId> fr.opensagres.xdocreport</groupId>
<artifactId> org.apache.poi.xwpf.converter.core</artifactId>
<version> 1.0.4</version>
</dependency>
<dependency>
<groupId> fr.opensagres.xdocreport</groupId>
<artifactId> org.apache.poi.xwpf.converter.xhtml</artifactId>
<version> 1.0.4</version>
</dependency>
</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没有边框,有待解决
java word转html(03,07) jacob,openoffcie,poi
http://happyqing.iteye.com/blog/2086437