packageconv;importjava.io.BufferedWriter;importjava.io.ByteArrayOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.OutputStreamWriter;importjava.util.Base64;importjavax.xml.parsers.DocumentBuilderFactory;importjavax.xml.parsers.ParserConfigurationException;importjavax.xml.transform.OutputKeys;importjavax.xml.transform.Transformer;importjavax.xml.transform.TransformerException;importjavax.xml.transform.TransformerFactory;importjavax.xml.transform.dom.DOMSource;importjavax.xml.transform.stream.StreamResult;importorg.apache.poi.hwpf.HWPFDocument;importorg.apache.poi.hwpf.converter.PicturesManager;importorg.apache.poi.hwpf.converter.WordToHtmlConverter;importorg.apache.poi.hwpf.usermodel.PictureType;importorg.w3c.dom.Document;public classWord2HtmlAboutPic {public static voidmain(String argv[]) {try{
convert2Html("D://2.doc", "D://2.html");
}catch(Exception e) {
e.printStackTrace();
}
}public static voidwriteFile(String content, String path) {
FileOutputStream fos= null;
BufferedWriter bw= null;try{
File file= newFile(path);
fos= newFileOutputStream(file);
bw= new BufferedWriter(new OutputStreamWriter(fos, "GB2312"));
bw.write(content);
}catch(FileNotFoundException fnfe) {
fnfe.printStackTrace();
}catch(IOException ioe) {
ioe.printStackTrace();
}finally{try{if (bw != null)
bw.close();if (fos != null)
fos.close();
}catch(IOException ie) {
ie.printStackTrace();
}
}
}public static void write2File(byte[] content, String path) {
FileOutputStream fos= null;
BufferedWriter bw= null;try{
File file= newFile(path);
fos= newFileOutputStream(file);
fos.write(content);
fos.close();
}catch(FileNotFoundException fnfe) {
fnfe.printStackTrace();
}catch(IOException ioe) {
ioe.printStackTrace();
}finally{try{if (bw != null)
bw.close();if (fos != null)
fos.close();
}catch(IOException ie) {
ie.printStackTrace();
}
}
}public static voidconvert2Html(String fileName, String outPutFile)throwsTransformerException, IOException, ParserConfigurationException {
Base64.Encoder encoder=Base64.getEncoder();
HWPFDocument wordDocument= new HWPFDocument(newFileInputStream(fileName));
WordToHtmlConverter wordToHtmlConverter= newWordToHtmlConverter(
DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument());
wordToHtmlConverter.setPicturesManager(newPicturesManager() {public String savePicture(byte[] content, PictureType pictureType, String suggestedName, floatwidthInches,floatheightInches) {
String encodedText= newString(encoder.encode(content));
String imgSrc= "data:" + pictureType.getMime() + ";" + "base64," +encodedText;returnimgSrc;
}
});
wordToHtmlConverter.processDocument(wordDocument);
Document htmlDocument=wordToHtmlConverter.getDocument();
ByteArrayOutputStream out= newByteArrayOutputStream();
DOMSource domSource= newDOMSource(htmlDocument);
StreamResult streamResult= newStreamResult(out);
TransformerFactory tf=TransformerFactory.newInstance();
Transformer serializer=tf.newTransformer();
serializer.setOutputProperty(OutputKeys.ENCODING,"UTF-8");
serializer.setOutputProperty(OutputKeys.INDENT,"yes");
serializer.setOutputProperty(OutputKeys.METHOD,"html");
serializer.transform(domSource, streamResult);
out.close();
write2File(out.toByteArray(), outPutFile);
}
}