1 package com.wesib2b.lw.app.util;
2
3 import java.io.ByteArrayOutputStream;
4 import java.io.File;
5 import java.io.FileInputStream;
6 import java.io.FileNotFoundException;
7 import java.io.FileOutputStream;
8 import java.io.InputStream;
9 import java.util.List;
10 import javax.xml.parsers.DocumentBuilderFactory;
11 import javax.xml.transform.OutputKeys;
12 import javax.xml.transform.Transformer;
13 import javax.xml.transform.TransformerFactory;
14 import javax.xml.transform.dom.DOMSource;
15 import javax.xml.transform.stream.StreamResult;
16 import org.apache.commons.io.FileUtils;
17 import org.apache.poi.hwpf.HWPFDocument;
18 import org.apache.poi.hwpf.converter.PicturesManager;
19 import org.apache.poi.hwpf.converter.WordToHtmlConverter;
20 import org.apache.poi.hwpf.usermodel.Picture;
21 import org.apache.poi.hwpf.usermodel.PictureType;
22 import org.w3c.dom.Document;
23
24 public class test {
25 public static void main(String[] args) throws Throwable {
26 final String path = "D:\\";
27 final String file = "aaa.doc";
28 InputStream input = new FileInputStream(path + file);
29 HWPFDocument wordDocument = new HWPFDocument(input);
30 WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(
31 DocumentBuilderFactory.newInstance().newDocumentBuilder()
32 .newDocument());
33 wordToHtmlConverter.setPicturesManager(new PicturesManager() {
34 public String savePicture(byte[] content, PictureType pictureType,
35 String suggestedName, float widthInches, float heightInches) {
36 return suggestedName;
37 }
38 });
39 wordToHtmlConverter.processDocument(wordDocument);
40 List pics = wordDocument.getPicturesTable().getAllPictures();
41 if (pics != null) {
42 for (int i = 0; i < pics.size(); i++) {
43 Picture pic = (Picture) pics.get(i);
44 try {
45 pic.writeImageContent(new FileOutputStream(path
46 + pic.suggestFullFileName()));
47 } catch (FileNotFoundException e) {
48 e.printStackTrace();
49 }
50 }
51 }
52 Document htmlDocument = wordToHtmlConverter.getDocument();
53 ByteArrayOutputStream outStream = new ByteArrayOutputStream();
54 DOMSource domSource = new DOMSource(htmlDocument);
55 StreamResult streamResult = new StreamResult(outStream);
56 TransformerFactory tf = TransformerFactory.newInstance();
57 Transformer serializer = tf.newTransformer();
58 serializer.setOutputProperty(OutputKeys.ENCODING, "utf-8");
59 serializer.setOutputProperty(OutputKeys.INDENT, "yes");
60 serializer.setOutputProperty(OutputKeys.METHOD, "html");
61 serializer.transform(domSource, streamResult);
62 outStream.close();
63 String content = new String(outStream.toByteArray());
64 FileUtils.write(new File(path, "1.html"), content, "utf-8");
65 }
66 }