由于在开发中需要适配不同的多端应用,在文件相关处理中也会存在相同的问题,需要将文档转换为不同的格式展示,本节我们主要通过一个小案例实现在java环境下实现 Word2003(doc)转换为HTML用于在线展示。
正文- 引入word转换为html的pom工具包
org.apache.poi poi-scratchpad3.17 org.apache.poi poi-ooxml3.17 fr.opensagres.xdocreport fr.opensagres.xdocreport.converter.docx.xwpf2.0.1
- 后端转换代码
@ApiOperation(value = "word2003转换为html")
@PostMapping(value = "word2003ToHtml")
public void word2003ToHtml(HttpServletResponse response, @RequestPart("file") MultipartFile file) {
try {
InputStream inputStream = file.getInputStream();
HWPFdocument worddocument = new HWPFdocument(inputStream);
WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(documentBuilderFactory.newInstance().newdocumentBuilder().newdocument());
wordToHtmlConverter.processdocument(worddocument);
document htmldocument = wordToHtmlConverter.getdocument();
response.reset();
response.setHeader("Content-Disposition", "inline; filename=" + URLEncoder.encode(IdWorker.getIdStr() + ".html", "UTF-8"));
ServletOutputStream outputStream = response.getOutputStream();
DOMSource domSource = new DOMSource(htmldocument);
StreamResult streamResult = new StreamResult(outputStream);
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);
outputStream.flush();
inputStream.close();
outputStream.close();
} catch (IOException ioException) {
ioException.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
- vue前端代码
Word2003转换Html示例
退出
Test Staring
将文件拖到此处,或点击上传
只能上传doc文件,且不超过50MB
.container {
padding: 10px;
.title {
font-size: 20px;
font-weight: bold;
}
}
- 验证结果
结语
ok,本节内容到这里就结束了,我们下期见。。。。。。



