使用 poi 将 kata 转换为 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> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>3.14</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>ooxml-schemas</artifactId> <version>1.3</version> </dependency>
2. 转换代码
impor org.apache.poi.hwpf.hwpfdocument; impor org.apache.poi.hwpf.converter.wordtoHtmlConverter; impor org.apache.poi.xwpf.converter.core.basicuriresolver; impor org.apache.poi.xwpf.converter.core.fileimageExtractor; impor org.apache.poi.xwpf.converter.xhtml.xhtmlConverter; impor org.apache.poi.xwpf.converter.xhtml.xhtmloptions; impor org.apache.poi.xwpf.usermodel.xwpfdocument; impor org.w3c.dom.document; impor javax.xml.parsers.documentbuilderfactory; impor javax.xml.transform.outputkeys; impor javax.xml.transform.transformer; impor javax.xml.transform.transformerFactory; impor javax.xml.transform.dom.domsource; impor javax.xml.transform.stream.streamResult; impor java.io.file; impor java.io.fileInputStream; impor java.io.fileoutputStream; impor java.io.outputStreamWriter; tes kelas publik {// doc 转换为 html void doctohtml () melempar pengecualian {string sourceFileName = "c: //doc//test.doc"; String targetFileName = "c: //html//test.html"; String ImagePathStr = "C: // html // Image //"; Hwpfdocument worddocument = hwpfdocument baru (fileInputStream baru (sumberfileName)); Dokumen dokumen = DocumentBuilderFactory.NewInstance (). NewDocumentBuilder (). NewDocument (); WordtOtmlConverter wordtOtmlConverter = new WordToHtmlConverter (dokumen); // 保存图片 , 并返回图片的相对路径 wordtOtmlConverter.setPicturesManager ((konten, pictureType, name, width, height) -> {try (fileoutputStream out = FileOutputStream baru (ImageTePathStr + name)) {out.write (content);} Catch (Exception e) {e.printStrace); wordtOtmlConverter.processdocument (worddocument); Dokumen htmldocument = wordtOtmlConverter.getDocument (); DomSource DomSource = DomSource baru (htmldocument); StreamResult StreamResult = New StreamResult (file baru (TargetFileName)); TransformerFactory TF = TransformerFactory.NewInstance (); Transformer serializer = tf.newtransformer (); Serializer.setoutputProperty (outputkeys.encoding, "UTF-8"); Serializer.setoutputProperty (outputkeys.indent, "ya"); Serializer.setoutputProperty (outputkeys.method, "html"); Serializer.Transform (DomSource, StreamResult); } // docx 转换为 html public void docxtoHtml () melempar pengecualian {string sourceFileName = "d: //ac//00.docx"; String targetFileName = "d: //ac//test.html"; String ImagePathStr = "D: // AC // Image //"; OutputStreamWriter outputStreamWriter = null; coba {xwpfdocument document = new XWPFDocument (FileInputStream baru (SourceFileName)); Opsi xhtmloptions = xhtmloptions.create (); // 存放图片的文件夹 option.setExtractor (FileImageExtractor baru (File baru (imagePathStr))); // html 中图片的路径 options.uriresolver (new Basicuriresolver ("Image")); outputStreamWriter = outputStreamWriter baru (FileOutputStream baru (TargetFileName), "UTF-8"); XHTMLCONVERTER XHTMLCONVERTER = (XHTMLCONVERTER) XHTMLCONVERTER.GetInstance (); xhtmlConverter.convert (dokumen, outputStreamWriter, opsi); } akhirnya {if (outputStreamWriter! = null) {outputStreamWriter.close (); }}}演示地址: https://www.xiaoyun.studio/app/preview.html
以上就是本文的全部内容 , 希望对大家的学习有所帮助 , 也希望大家多多支持武林网。