使用 poi 将 Wort 转换为 html , 支持 doc, docx , 转换后可以保持图片、样式。
1. 导入 Maven 包
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-scratchpad</artifactId> <version>3.14</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.14</version> </dependency> <dependency> <groupId>fr.opensagres.xdocreport</groupId> <artifactId>xdocreport</artifactId> <version>1.0.6</version> </dependency> <dependency> <gruppeId> org.apache.poi </GroupId> <artifactId> poi-ooxml-schemas </artifactId> <version> 3.14 </Version> </abhängig> <abhängigkeit> <GroupID> org.apache.poi </gruppen> <artifactId> Depacml-sschemas </artifactid> </Version> 1.3 </Version> 1.3 </Version> 1.3 </Version> 1.3;
2. 转换代码
import org.apache.poi.hwpf.hwpfdocument; import org.apache.poi.hwpf.converter.wordtohtmlConverter; import org.apache.poi.xwpf.converter.core.basicurireSolver; 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; importieren javax.xml.parsers.documentBuilderFactory; importieren javax.xml.transform.outputkeys; importieren javax.xml.transform.transformer; importieren javax.xml.transform.transformerFactory; import javax.xml.transform.dom.domSource; import javax.xml.transform.stream.streamResult; Import Java.io.file; import Java.io.FileInputStream; importieren java.io.fileoutputStream; importieren java.io.outputStreamwriter; public class test {// doc 转换为 html void doctohtml () löst Ausnahme aus {String sourceFileName = "C: //doc//test.doc"; String targetFileName = "c: //html//test.html"; String imagePathstr = "C: // html // Bild //"; Hwpfdocument wordDocument = new hwpfdocument (neuer FileInputStream (SourceFileName)); Document document = documentBuilderFactory.newinstance (). NewdocumentBuilder (). Newdocument (); WordtoHtmlConverter wordtohtmlConverter = new WordToHtmlConverter (Dokument); // 保存图片 , 并返回图片的相对路径 WordToHtmlConverter.setPicturesManager ((Inhalt, Picturetyp, Name, Breite, Höhe) -> {try (FileOutputStream = new FileOutputStream (ImagePathstr + Name) {out.write);} catch (Ausnahme E) {E.printstacktrace ();}; wordtoHtmlConverter.ProcessDocument (WordDocument); Document htmldocument = wordtohtmlConverter.getDocument (); DomSource domSource = new DomSource (htmldocument); StreamResult streamResult = new StreamResult (neue Datei (targetFileName)); TransformerFactory tf = transformerFactory.Newinstance (); Transformator serializer = tf.newtransformer (); serializer.setoutputProperty (outputkeys.encoding, "utf-8"); serializer.SetoutputProperty (outputkeys.indent, "yes"); serializer.setoutputProperty (outputkeys.method, "html"); Serializer.transform (DomSource, StreamResult); } // docx 转换为 html public void docxtoHtml () löst Ausnahme aus {String sourceFileName = "d: //ac//00.docx"; String targetFileName = "d: //ac//test.html"; String imagePathstr = "D: // ac // Bild //"; OutputStreamWriter optimalStreamWriter = null; try {xwpfdocument document = new XWPFDocument (neuer FileInputStream (SourceFileName)); Xhtmloptions options = xhtmloptions.create (); // 存放图片的文件夹 options.setExtractor (neuer FileImageExtractor (neuer Datei (ImagePathstr)); // html 中图片的路径 options.urireSolver (neuer BasicurireSolver ("Bild")); outputStreamwriter = neuer outputStreamWriter (neuer FileOutputStream (TargetFileName), "UTF-8"); XhtmlConverter xhtmlConverter = (xhtmlConverter) xhtmlConverter.getInstance (); xhtmlConverter.Convert (Dokument, OutputStreamWriter, Optionen); } endlich {if (outputStreamWriter! = null) {outputStreamWriter.CLOSE (); }}}演示地址: https://www.xiaoyun.studio/app/preview.html
以上就是本文的全部内容 , 希望对大家的学习有所帮助 , 也希望大家多多支持武林网。 也希望大家多多支持武林网。