前言

由于在开发中需要适配不同的多端应用,在文件相关处理中也会存在相同的问题,需要将文档转换为不同的格式展示,本节我们主要通过一个小案例实现在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. TCP断开连接为什么是4次挥手?
  2. tp5中在where中使用in
  3. [翻译]XNA建设者俱乐部在线网站上的社区新亮点
  4. 李战java_【阿里李战】解剖JavaScript中的 null 和 undefined
  5. [MyBatisPlus]模拟多数据源环境及测试
  6. 寻找数组中第K频繁的元素
  7. 理论基础 —— 索引 —— 倒排索引
  8. Bootstrap公司年会抽奖活动代码
  9. 观察者模式代码php,PHP 观察者模式的实现代码
  10. web自动化测试 Selenium2 Java自动化测试实战9_3
  11. self-hacking第五天
  12. 459B Pashmak and Flowers
  13. [官方消息]优秀云大使推广经验分享合集
  14. 【Markdown】希腊字母表
  15. 抖音为何能一夜爆火?
  16. mac 解压rar压缩文件
  17. 如何成为早起者(三)
  18. 回归方程的拟合优度检验_判定一元线性回归方程拟合优度的判定系数R的取值范围...
  19. h5 版活体检测、视频活体检测
  20. ODOO15固定资产管理系统解决方案(原创)

热门文章

  1. 建立个人网站1:腾讯云域名购买,域名解析以及使用GitHub初步搭建网站
  2. 《西游记》主要人物的阶层分析及取经的本质意义
  3. php中使用kindeditor,Thinkphp编辑器扩张类kindeditor使用方法
  4. 修驴蹄子有什么好看的?我一般刷到那里,就不动了。
  5. Python3 round() 函数
  6. 利用VBA检查excel数据,显示总行数
  7. 软件测试-为什么我们的自动化测试做不起来?
  8. 辛苦工作之余来看看一些短笑话
  9. NASM汇编教程翻译09 第九讲 用户输入
  10. Mac隐藏显示隐藏文件方法