Java使用poi将word转换为html

网友投稿 557 2023-06-20


Java使用poi将word转换为html

使用poi将word转换为html,支持doc,docx,转换后可以保持图片、样式。

1.导入Maven包

org.apache.poi

poi

3.14

org.apache.poi

poi-scratchpad

3.14

org.apache.poi

poi-ooxml

3.14

fr.opensagres.xdocreport

xdocreport

1.0.6

org.apache.poi

3.14

org.apache.poi

ooxml-schemas

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;

import javax.xml.parsers.DocumentBuilderFactory;

import javax.xml.transform.OutputKeys;

import javax.xml.transform.Transformer;

import javax.xml.transform.TransformerFactory;

import javax.xml.transform.dom.DOMSource;

import javax.xml.transform.stream.StreamResult;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.OutputStreamWriter;

public class Test {

// doc转换为html

void docToHtml() throws Exception {

Sthttp://ring 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((content, pictureType, name, width, height) -> {

try(FileOutputStream out = new FileOutputStream(imagePathStr + name)){

out.write(content);

} catch (Exception e) {

e.printStackTrace();

}

return "image/" + name;

});

wordToHtmlConverter.processDocument(wordDocument);

Document htmlDocument = wordToHtmlConverter.getDocument();

DOMSource domSource = new DOMSource(htmlDocument);

StreamResult streamResult = new StreamResult(new File(targetFileName));

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);

}

// docx转换为html

public void docxToHtml() throws 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(new File(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);

} finally {

if (outputStreamWriter != null) {

outputStreamWriter.close();http://

}

}

}

演示地址: https://xiaoyun.studio/app/preview.html


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java IO实现电脑搜索、删除功能的实例
下一篇:SpringMVC结合Jcrop实现图片裁剪
相关文章

 发表评论

暂时没有评论,来抢沙发吧~