前言

由于在开发中需要适配不同的多端应用,在文件相关处理中也会存在相同的问题,需要将文档转换为不同的格式展示,本节我们主要通过一个小案例实现在java环境下实现 Word2003(doc)转换为HTML用于在线展示。

正文

  • 引入word转换为html的pom工具包
<!--word转html https://mvnrepository.com/artifact/org.apache.poi/poi-scratchpad -->
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>3.17</version>
</dependency><!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version>
</dependency><!-- https://mvnrepository.com/artifact/fr.opensagres.xdocreport/fr.opensagres.xdocreport.converter.docx.xwpf -->
<dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>fr.opensagres.xdocreport.converter.docx.xwpf</artifactId><version>2.0.1</version>
</dependency>

  • 后端转换代码
    @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前端代码
<template><div class="container"><div class="title"><span>Word2003转换Html示例</span><el-divider direction="vertical"></el-divider><router-link to="home"><span style="font-size: 18px;">退出</span></router-link></div><el-divider>Test Staring</el-divider><div style="text-align: center;"><el-uploadref="upload"class="upload-demo"drag:on-success="handlerOnSuccess"action="/fileTransfer/word2003ToHtml"><i class="el-icon-upload"></i><div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div><div class="el-upload__tip" slot="tip">只能上传doc文件,且不超过50MB</div></el-upload></div></div>
</template><script>
export default {name: "Word2003ToHtml",data() {return {}},methods: {//文件上传成功的回调handlerOnSuccess(data, file, fileList) {const url = window.URL.createObjectURL(new Blob([data], {type: 'text/html'}));const link = document.createElement('a');link.href = url;link.setAttribute('download', file.uid+'.html') // 下载文件的名称及文件类型后缀document.body.appendChild(link)link.click();document.body.removeChild(link); // 下载完成移除元素window.URL.revokeObjectURL(url); // 释放掉blob对象}}
}
</script><style scoped lang="scss">
.container {padding: 10px;.title {font-size: 20px;font-weight: bold;}
}
</style>

  • 验证结果

结语

ok,本节内容到这里就结束了,我们下期见。。。。。。

(三)java项目中的文档转换案例实战——Word2003(doc)版本转换为HTML网页相关推荐

  1. (五)java项目中的文档转换案例实战——Word转换为PDF

    前言 由于在开发中需要适配不同的多端应用,在文件相关处理中也会存在相同的问题,需要将文档转换为不同的格式展示,本节我们主要通过一个小案例实现在java环境下实现Word2003(doc). Word2 ...

  2. 项目中的难点怎么克服_克服大型项目中的文档挑战

    项目中的难点怎么克服 鉴于最近熊猫( Pandas) ,NumPy和Matplotlib等开放源数据科学项目的普及Swift增长,人们对文档的兴趣日益浓厚 ,这不足为奇. 为了帮助您了解所面临的问题, ...

  3. java编码规范文档 下载_软件项目实训及课程设计指导——制定待开发项目中各种文档的规范...

    软件项目实训及课程设计指导--制定待开发项目中各种形式文档的规范 1.制定对课程设计项目开发过程中的规范性要求 (1)从"形式"到"内容"两个方面控制和要求开发 ...

  4. 软件项目中的文档管理(下)

    DevSuite系统中的文档管理工具叫做KnowledgeWise,在以"知识为核心" 的理念中属于核心地位,因为软件开发过程中其实每个阶段都需要接触文档的,从需求文档到设计文档到 ...

  5. 软件项目中的文档管理(上)

    文档管理,有些公司也称为知识库管理,本文还是以文档作为称呼吧. 1.先说说文档管理的历史背景和演化史吧 一般情况下,文档可以包含很多方面的内容,一个Excel表格,一个需求设计文件,一个Bug的解决方 ...

  6. 永中DCS文档转换服务其它产品对比

    一.利用DCOM配置直接操作Office文件 作用:读取文件内容,导出Html文件 优势:免费 劣势:1.服务器上必须安装Office软件 2.配置麻烦,正如微软所说,读取Office不是这么干的. ...

  7. springboot+vue学生综合测评系统(java项目源码+文档)

    风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农.今天要和大家聊的是一款基于springboot的学生综合测评系统.项目源码以及部署相关请联系风歌,文末附上联系信息 .

  8. springboot+vue项目之MOBA类游戏攻略分享平台(java项目源码+文档)

    风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农.今天要和大家聊的是一款基于springboot的MOBA类游戏攻略分享平台.项目源码以及部署相关请联系风歌,文末附上联系信息 .

  9. Java项目:银行管理系统+文档Java基础Gui(java+Gui)

    源码获取:博客首页 "资源" 里下载! 功能介绍: 登录.打印.取款.改密.转账.查询.挂失.存款.退卡 服务模块: public class atmFrame extends J ...

最新文章

  1. 独家福利 | 科大讯飞全球1024开发者节限时免费门票!
  2. mysql单列索引和多列索引_mysql 单列索引与多列索引
  3. 实习第二弹——交换机的配置与统计
  4. scala 定义空list_Scala的存在类型
  5. PHP部分字符串函数汇总
  6. 仿Office的程序载入窗体
  7. Linux的环境变量配置
  8. Linux进程管理(第二版) --计划任务
  9. cloudflare 利用API将域名批量解析到cloudflare
  10. 漫步数理统计九——离散随机变量
  11. k8s核心技术-Pod(调度策略)_影响Pod调度(资源限制和节点选择器)---K8S_Google工作笔记0025
  12. 自动给神经网络找bug,Google发布TensorFuzz
  13. Java中的Servlet详解
  14. 计算机专业毕业设计题目大全(持续更新)
  15. (三十八)论文阅读 | 目标检测之CPN
  16. SIMULIA-达索系统一体化仿真解决方案
  17. ckplayer播放器自动播放下一集以及点击下一集
  18. mac下更新自带的PHP版本到5.6或7.0
  19. XX^{T} 和 X^{T}X 的关系
  20. 在线教育20年:在线教育的未来发展趋势

热门文章

  1. 跟我学TCP/IP系列5
  2. 微信开发踩坑系列一之Native支付
  3. 女巫 3D角色 | 国外3D设计师DurontoRakib
  4. 小酒坊酿白酒不知道怎么售卖?质检报告和SC生产许可不知道怎么办理?
  5. Java面试自用简洁版
  6. Ubuntu16安装freesurfer教程
  7. AIGC的1000+篇文章总结
  8. 参考美团、饿了么 localStorage
  9. 大学生期末网页大作业:蛋糕甜品网站设计——餐厅美食蛋糕甜品推荐网页设计(4页) HTML+CSS+JavaScript
  10. Vue学习记录04--单项数据绑定双向数据绑定