(三)java项目中的文档转换案例实战——Word2003(doc)版本转换为HTML网页
前言
由于在开发中需要适配不同的多端应用,在文件相关处理中也会存在相同的问题,需要将文档转换为不同的格式展示,本节我们主要通过一个小案例实现在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网页相关推荐
- (五)java项目中的文档转换案例实战——Word转换为PDF
前言 由于在开发中需要适配不同的多端应用,在文件相关处理中也会存在相同的问题,需要将文档转换为不同的格式展示,本节我们主要通过一个小案例实现在java环境下实现Word2003(doc). Word2 ...
- 项目中的难点怎么克服_克服大型项目中的文档挑战
项目中的难点怎么克服 鉴于最近熊猫( Pandas) ,NumPy和Matplotlib等开放源数据科学项目的普及Swift增长,人们对文档的兴趣日益浓厚 ,这不足为奇. 为了帮助您了解所面临的问题, ...
- java编码规范文档 下载_软件项目实训及课程设计指导——制定待开发项目中各种文档的规范...
软件项目实训及课程设计指导--制定待开发项目中各种形式文档的规范 1.制定对课程设计项目开发过程中的规范性要求 (1)从"形式"到"内容"两个方面控制和要求开发 ...
- 软件项目中的文档管理(下)
DevSuite系统中的文档管理工具叫做KnowledgeWise,在以"知识为核心" 的理念中属于核心地位,因为软件开发过程中其实每个阶段都需要接触文档的,从需求文档到设计文档到 ...
- 软件项目中的文档管理(上)
文档管理,有些公司也称为知识库管理,本文还是以文档作为称呼吧. 1.先说说文档管理的历史背景和演化史吧 一般情况下,文档可以包含很多方面的内容,一个Excel表格,一个需求设计文件,一个Bug的解决方 ...
- 永中DCS文档转换服务其它产品对比
一.利用DCOM配置直接操作Office文件 作用:读取文件内容,导出Html文件 优势:免费 劣势:1.服务器上必须安装Office软件 2.配置麻烦,正如微软所说,读取Office不是这么干的. ...
- springboot+vue学生综合测评系统(java项目源码+文档)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农.今天要和大家聊的是一款基于springboot的学生综合测评系统.项目源码以及部署相关请联系风歌,文末附上联系信息 .
- springboot+vue项目之MOBA类游戏攻略分享平台(java项目源码+文档)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农.今天要和大家聊的是一款基于springboot的MOBA类游戏攻略分享平台.项目源码以及部署相关请联系风歌,文末附上联系信息 .
- Java项目:银行管理系统+文档Java基础Gui(java+Gui)
源码获取:博客首页 "资源" 里下载! 功能介绍: 登录.打印.取款.改密.转账.查询.挂失.存款.退卡 服务模块: public class atmFrame extends J ...
最新文章
- TCP断开连接为什么是4次挥手?
- tp5中在where中使用in
- [翻译]XNA建设者俱乐部在线网站上的社区新亮点
- 李战java_【阿里李战】解剖JavaScript中的 null 和 undefined
- [MyBatisPlus]模拟多数据源环境及测试
- 寻找数组中第K频繁的元素
- 理论基础 —— 索引 —— 倒排索引
- Bootstrap公司年会抽奖活动代码
- 观察者模式代码php,PHP 观察者模式的实现代码
- web自动化测试 Selenium2 Java自动化测试实战9_3
- self-hacking第五天
- 459B Pashmak and Flowers
- [官方消息]优秀云大使推广经验分享合集
- 【Markdown】希腊字母表
- 抖音为何能一夜爆火?
- mac 解压rar压缩文件
- 如何成为早起者(三)
- 回归方程的拟合优度检验_判定一元线性回归方程拟合优度的判定系数R的取值范围...
- h5 版活体检测、视频活体检测
- ODOO15固定资产管理系统解决方案(原创)