使用 poi 将 mot 转换为 html , 支持 doc, docx , 转换后可以保持图片、样式。
1. 导入 maven 包
<dependency> <proupId> org.apache.poi </rompuprid> <letifactive> poi </ artifactive> <version> 3.14 </ version> </Dependency> <Dedency> <ProupId> org.apache.poi </prouprid> <Artifactid> poi-scratchpad </tafactId> <version> 3.14 </ version> <GroupId> org.apache.poi </rompuprid> <Artifactid> poi-ooxml </ artifactive> <version> 3.14 </ version> </pedigency> <dependency> <proupId> fr.opensagres.xdocreport </proupId> <Artifactid> xdocreport </ptetifActid> <version> 1.0.6 <version version> <GroupId> org.apache.poi </proupId> <Artifactid> Poi-oooxml-schemas </ artifactid> <version> 3.14 </-version> </Dependency> <Dependency> <ProupId> org.apache.poi </prowprid> <Artifactid> ooxml-schemas </tatifactid> <fri version> 1.3 </ version>
2. 转换代码
import org.apache.poi.hwpf.hwpfDocument; import org.apache.poi.hwpf.converter.wordtohtmlconverter; import org.apache.poi.xwpf.converter.core.basicuResolver; import org.apache.poi.xwpf.converter.core.fileImageExtractor; 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.w3c.dom.Document; Importer javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.outputkeys; import javax.xml.transform.transformateur; Importer javax.xml.transform.transFactory; import javax.xml.transform.dom.domsource; import javax.xml.transform.stream.streamResult; Importer java.io.file; import java.io.fileInputStream; Importer java.io.fileOutputStream; import java.io.outputStreamWriter; Test de classe publique {// doc 转换为 html void doctohtml () lève une exception {string sourceFileName = "c: //doc//test.doc"; String TargetFileName = "C: //html//test.html"; String imagePathstr = "c: // html // image //"; HwpfDocument wordDocument = new HWPFDocument (new FileInputStream (sourceFileName)); Document document = documentBuilderFactory.newinstance (). NewDocumentBuilder (). NewDocument (); WordtohtmlConverter wordtohtmlconverter = new wordtohtmlConverter (document); // 保存图片 , 并返回图片的相对路径 wordtohtmlconverter.setPicturesManager ((contenu, pictureType, nom, largeur, hauteur) -> {try (fileoutputStream out = new FileOutputStream (ImagePathstr + name)) {out.write (contenu);} catch (exception e) {e.printStackTrace ();} return "image / name;}); wordtohtmlConverter.ProcessDocument (WordDocument); Document htmlDocument = wordtohtmlconverter.getDocument (); Domsource domsource = new Domsource (htmlDocument); StreamResult StreamResult = new StreamResult (nouveau fichier (TargetFileName)); TransformorFactory tf = transformèrefactory.newinstance (); Transformateur Serializer = tf.NewTransformrer (); serializer.setOutputProperty (outputKeys.encoding, "UTF-8"); serializer.setOutputProperty (outputKeys.indent, "Oui"); serializer.setOutputProperty (outputKeys.Method, "html"); Serializer.Transform (Domsource, StreamResult); } // docx 转换为 html public void docxtohtml () lève l'exception {string sourceFileName = "d: //ac//00.docx"; String TargetFileName = "d: //ac//test.html"; String imagePathstr = "d: // ac // image //"; OutputStreamWriter outputStreamWriter = null; try {xwpfDocument document = new XWPFDocument (new FileInputStream (sourceFileName)); XhtmLoptions Options = xhtmLoptions.Create (); // 存放图片的文件夹 options.setExtractor (new FileImageExtractor (nouveau fichier (imagePathstr))); // HTML 中图片的路径 OPTIONS.URIRESOLVER (New BasicUriResolver ("image")); outputStreamWriter = new OutputStreamWriter (new FileOutputStream (TargetFileName), "UTF-8"); XhtmlConverter xhtmlConverter = (xhtmlConverter) xhtmlConverter.getInstance (); xhtmlConverter.Convert (document, OutputStreamWriter, Options); } enfin {if (outputStreamWriter! = null) {outputStreamWriter.close (); }}}演示地址: https://www.xiaoyun.studio/app/preview.html
以上就是本文的全部内容 , 希望对大家的学习有所帮助 , 也希望大家多多支持武林网。