(五)java项目中的文档转换案例实战——Word转换为PDF
前言
由于在开发中需要适配不同的多端应用,在文件相关处理中也会存在相同的问题,需要将文档转换为不同的格式展示,本节我们主要通过一个小案例实现在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相关推荐
- (三)java项目中的文档转换案例实战——Word2003(doc)版本转换为HTML网页
前言 由于在开发中需要适配不同的多端应用,在文件相关处理中也会存在相同的问题,需要将文档转换为不同的格式展示,本节我们主要通过一个小案例实现在java环境下实现 Word2003(doc)转换为HTM ...
- Java项目中利用Freemarker模板引擎导出--生成Word文档
应邀写的一篇文章:Java项目中利用Freemarker模板引擎导出--生成Word文档 资源下载:https://download.csdn.net/download/weixin_41367523 ...
- 项目中的难点怎么克服_克服大型项目中的文档挑战
项目中的难点怎么克服 鉴于最近熊猫( Pandas) ,NumPy和Matplotlib等开放源数据科学项目的普及Swift增长,人们对文档的兴趣日益浓厚 ,这不足为奇. 为了帮助您了解所面临的问题, ...
- Office文档上传后实时转换为PDF格式_图片文件上传后实时裁剪_实现在线预览Office文档
Office文档上传后实时转换为PDF格式_图片文件上传后实时裁剪 前置条件 安装LibreOffice 安装OpenOffice 安装Unoconv 安装ImageMagick.x86_64 安装G ...
- java编码规范文档 下载_软件项目实训及课程设计指导——制定待开发项目中各种文档的规范...
软件项目实训及课程设计指导--制定待开发项目中各种形式文档的规范 1.制定对课程设计项目开发过程中的规范性要求 (1)从"形式"到"内容"两个方面控制和要求开发 ...
- 软件项目中的文档管理(上)
文档管理,有些公司也称为知识库管理,本文还是以文档作为称呼吧. 1.先说说文档管理的历史背景和演化史吧 一般情况下,文档可以包含很多方面的内容,一个Excel表格,一个需求设计文件,一个Bug的解决方 ...
- 软件项目中的文档管理(下)
DevSuite系统中的文档管理工具叫做KnowledgeWise,在以"知识为核心" 的理念中属于核心地位,因为软件开发过程中其实每个阶段都需要接触文档的,从需求文档到设计文档到 ...
- 使用七牛的文档转换服务将PPT转换为JPG
这段时间公司要做一个把上传的ppt文件转换成为一组jpg文件的功能,我查了查资料,发现可以使用libreoffice先把ppt转成pdf,然后再用imagemagick把pdf转换成为jpg来实现,在 ...
- 使用FreeMarker生成word文档(带图片),word转pdf,预览pdf,pdf下载工具类
一.下载或配置: 下载jar包 :freemaker的jar包下载 下载jar包 :aspose-words的jar包下载 或者配置maven依赖: pom.xml添加aspose的依赖包(maven ...
最新文章
- mysql repalication_MySQL主从复制的原理及配置方法(比较详细)
- [COCI2015]COCI
- Java Servlet 技术简介
- UNITY Destroy()和DestroyImadiate()都不会立即释放对象内存
- [转载] 【C/C++】Vector的创建与初始化方法
- Ubuntu18.04安装配置Qt5.15
- android l usb调试,你居然还不会手机usb调试?5个方法,让你轻松学会设置!
- LaTeX数学公式大全
- 用HTML制作一个好看的网页模板
- 一个多线程Ping 类
- Internet of Things(IOTS)and Wireless Sensor Networks Lecture1(WSNS)
- python身份证识别
- 如何更新/升级 python 库?
- mysql中的dual
- OneNote for Windows 10 快捷键大全
- SQL日常练习2-进阶篇-牛客网
- 计算机待机原理,电脑待机原理和开机原理
- 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java磐基建筑机械租赁有限公司机械租赁系统41c32
- OpenCV For Unity Mat容器的创建与矩阵操作基础
- 用unity做游戏用java_Unity游戏开始崩溃