前言

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

正文

  • 引入word转换为pdf的pom工具包
<!-- docx/doc转换pdf-->
<dependency><groupId>com.documents4j</groupId><artifactId>documents4j-local</artifactId><version>1.1.5</version>
</dependency>
<dependency><groupId>com.documents4j</groupId><artifactId>documents4j-transformer-msoffice-word</artifactId><version>1.1.5</version>
</dependency>

  • 后端转换代码
    @ApiOperation(value = "word转换为pdf")@PostMapping(value = "wordToPdf")public void wordToPdf(HttpServletResponse response, @RequestPart("file") MultipartFile file) {try {String ext = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);response.reset();response.setHeader("Content-Disposition", "inline; filename=" + URLEncoder.encode(IdWorker.getIdStr() + ".pdf", "UTF-8"));ServletOutputStream outputStream = response.getOutputStream();InputStream inputStream = file.getInputStream();IConverter converter = LocalConverter.builder().build();if(ext.equals("docx")){converter.convert(inputStream).as(DocumentType.DOCX).to(outputStream).as(DocumentType.PDF).execute();}if(ext.equals("doc")){converter.convert(inputStream).as(DocumentType.DOC).to(outputStream).as(DocumentType.PDF).execute();}inputStream.close();outputStream.close();} catch (IOException ioException) {ioException.printStackTrace();}}

  • vue前端代码
<template><div class="container"><div class="title"><span>Word转换PDF示例</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:http-request="myUploadFile"><i class="el-icon-upload"></i><div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div><div class="el-upload__tip" slot="tip">只能上传docx文件,且不超过50MB</div></el-upload></div></div>
</template><script>
export default {name: "WordToPdf",data() {return {}},methods: {//文件上传成功的回调myUploadFile(data) {const formData = new FormData();formData.append("file", data.file);this.$http.post('/fileTransfer/wordToPdf', formData, {responseType: 'blob',headers: {'Content-Type': 'multipart/form-data',},}).then(res => {const blob = new Blob([res.data], {type: 'application/pdf'});let timestamp = (new Date()).valueOf();const fileName = timestamp + '.pdf'if ('download' in document.createElement('a')) { // 非IE下载const elink = document.createElement('a')elink.download = fileNameelink.style.display = 'none'elink.href = window.URL.createObjectURL(blob)document.body.appendChild(elink)elink.click()window.URL.revokeObjectURL(elink.href) // 释放URL 对象document.body.removeChild(elink)} else { // IE10+下载navigator.msSaveBlob(blob, fileName)}}).catch(error => {this.$message.error(error);});}}
}
</script><style scoped lang="scss">
.container {padding: 10px;.title {font-size: 20px;font-weight: bold;}
}
</style>

  • 验证结果

结语

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

(五)java项目中的文档转换案例实战——Word转换为PDF相关推荐

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

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

  2. Java项目中利用Freemarker模板引擎导出--生成Word文档

    应邀写的一篇文章:Java项目中利用Freemarker模板引擎导出--生成Word文档 资源下载:https://download.csdn.net/download/weixin_41367523 ...

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

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

  4. Office文档上传后实时转换为PDF格式_图片文件上传后实时裁剪_实现在线预览Office文档

    Office文档上传后实时转换为PDF格式_图片文件上传后实时裁剪 前置条件 安装LibreOffice 安装OpenOffice 安装Unoconv 安装ImageMagick.x86_64 安装G ...

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

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

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

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

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

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

  8. 使用七牛的文档转换服务将PPT转换为JPG

    这段时间公司要做一个把上传的ppt文件转换成为一组jpg文件的功能,我查了查资料,发现可以使用libreoffice先把ppt转成pdf,然后再用imagemagick把pdf转换成为jpg来实现,在 ...

  9. 使用FreeMarker生成word文档(带图片),word转pdf,预览pdf,pdf下载工具类

    一.下载或配置: 下载jar包 :freemaker的jar包下载 下载jar包 :aspose-words的jar包下载 或者配置maven依赖: pom.xml添加aspose的依赖包(maven ...

最新文章

  1. mysql repalication_MySQL主从复制的原理及配置方法(比较详细)
  2. [COCI2015]COCI
  3. Java Servlet 技术简介
  4. UNITY Destroy()和DestroyImadiate()都不会立即释放对象内存
  5. [转载] 【C/C++】Vector的创建与初始化方法
  6. Ubuntu18.04安装配置Qt5.15
  7. android l usb调试,你居然还不会手机usb调试?5个方法,让你轻松学会设置!
  8. LaTeX数学公式大全
  9. 用HTML制作一个好看的网页模板
  10. 一个多线程Ping 类
  11. Internet of Things(IOTS)and Wireless Sensor Networks Lecture1(WSNS)
  12. python身份证识别
  13. 如何更新/升级 python 库?
  14. mysql中的dual
  15. OneNote for Windows 10 快捷键大全
  16. SQL日常练习2-进阶篇-牛客网
  17. 计算机待机原理,电脑待机原理和开机原理
  18. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java磐基建筑机械租赁有限公司机械租赁系统41c32
  19. OpenCV For Unity Mat容器的创建与矩阵操作基础
  20. 用unity做游戏用java_Unity游戏开始崩溃

热门文章

  1. 2020-09-14VitualBox使用相关问题
  2. 闲鱼如何通过Push升级,更懂你?
  3. PostgreSQL逻辑订阅logical
  4. Power Table(超强动态表格)
  5. scrapy爬取美女图片
  6. 关系数据库基本概念与名词
  7. 5G下行理论峰值速率该如何计算?
  8. 精选用户故事|洞态在聚水潭的误报率几乎为0,如何做到?
  9. java父原型,对象及原型丶Java教程网-IT开发者们的技术天堂
  10. 【智能制造】智能服务 ── 向服务型制造转型