使用 poi 将 word 转换为 html , 支持 doc ، docx , 转换后可以保持图片、样式。
1. 导入 maven 包
<Rependency> <roupeD> org.apache.poi </rougiD> <StifactId> poi </shintifactid> <الإصدار> 3.14 </version> </sependency> <sepensid> org.14 </groupiD> <roupl> org.apache.poi </groupId> <StifactId> poi-ooxml </shintifactid> <الإصدار> 3.14 </version> </sependency> <sependency> fr.opensagres.xdocreport </groupid> <roughid> org.apache.poi </rougiD> <StifactId> poi-ooxml-schemas </stifactid> <sored> 3.14 </splements> </dependency> <sependency> <rougid> org.apache.poi </rougeid>
2. 转换代码
استيراد org.apache.poi.hwpf.hwpfdocument ؛ استيراد org.apache.poi.hwpf.converter.wordtohtmlConverter ؛ استيراد org.apache.poi.xwpf.converter.core.basicuriresolver ؛ استيراد org.apache.poi.xwpf.converter.core.fileImageExtractor ؛ استيراد org.apache.poi.xwpf.converter.xhtml.xhtmlConverter ؛ استيراد org.apache.poi.xwpf.converter.xhtml.xhtmloptions ؛ استيراد org.apache.poi.xwpf.usermodel.xwpfdocument ؛ استيراد org.w3c.dom.document ؛ استيراد javax.xml.parsers.documentBuilderFactory ؛ استيراد javax.xml.transform.outputkeys ؛ استيراد javax.xml.transform.transformer ؛ استيراد javax.xml.transform.transformerfactory ؛ استيراد javax.xml.transform.dom.domsource ؛ استيراد javax.xml.transform.stream.streamResult ؛ استيراد java.io.file ؛ استيراد java.io.fileInputStream ؛ استيراد java.io.fileOutputStream ؛ استيراد java.io.outputStreamWriter ؛ اختبار الفئة العامة {// doc 转换为 html void doctohtml () يلقي استثناء {String sourceFilename = "c: //doc//test.doc" ؛ String TargetFilename = "C: //html//test.html" ؛ String ImagePathstr = "C: // html // Image //" ؛ hwpfdocument wordDocument = new hwpfdocument (fileInputStream جديد (sourceFilename)) ؛ وثيقة المستند = documentBuilderFactory.newinstance (). NewDocumentBuilder (). NewDocument () ؛ WordToHtmlConverter WordToHtmlConverter = new WordToHtmlConverter (وثيقة) ؛ // 保存图片 , wordtohtmlConverter.SetPicturesManager ((المحتوى ، pictureType ، الاسم ، العرض ، الارتفاع) -> {try (fileOutputStream Out = newoutputStream (imagePathstr + name)) {out.write (content) ؛ WordToHtmlConverter.ProcessDocument (WordDocument) ؛ وثيقة htmldocument = wordtohtmlConverter.getDocument () ؛ DomSource DomSource = New DomSource (htmldocument) ؛ StreamResult StreamResult = New StreamResult (ملف جديد (TargetFilename)) ؛ transformerfactory tf = transformerfactory.newinstance () ؛ Transformer Serializer = tf.newransformer () ؛ serializer.setOutputProperty (outputkeys.encoding ، "UTF-8") ؛ serializer.setOutputProperty (outputkeys.indent ، "نعم") ؛ serializer.setOutputProperty (outputkeys.method ، "html") ؛ Serializer.transform (DomSource ، StreamResult) ؛ } // docx 转换为 html public void docxtohtml () يلقي استثناء {String sourceFilename = "d: //ac/00.docx" ؛ String TargetFilename = "D: //ac//test.html" ؛ String ImagePathstr = "d: // ac // image //" ؛ OutputStreamWriter OutputStreamWriter = null ؛ حاول {xwpfdocument document = new xwpfdocument (fileInputStream جديد (sourceFilename)) ؛ خيارات xhtmloptions = xhtmloptions.create () ؛ // 存放图片的文件夹 Options.setExtractor (NewImageExtractor (ملف جديد (ImagePathstr))) ؛ // html 中图片的路径 Options.Uriresolver (New Basicuriresolver ("Image")) ؛ OutputStreamWriter = جديد OutputStreamWriter (FileOutputStream جديد (TargetFilename) ، "UTF-8") ؛ XHTMLConverter XHTMLConverter = (XHTMLConverter) XHTMLConverter.getInstance () ؛ XHTMLConverter.convert (المستند ، OutputStreamWriter ، الخيارات) ؛ } أخيرًا {if (outputStreamWriter! = null) {outputStreamWriter.close () ؛ }}}演示地址: https://www.xiaoyun.studio/app/preview.html
以上就是本文的全部内容 , 希望对大家的学习有所帮助 , 也希望大家多多支持武林网。