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