当前位置:首页 > 技术分析 > 正文内容

使用OnlyOffice进行文档转换

前言

在日常企业级应用开发过程中,文档预览、文档相互转换是非常常见的需求,平时我们都是使用纯java的一些工具进行处理,比如:docx4jApache POI + iText等,无论使用哪种方案,简单的一点问题没有,但是遇到比较复杂的格式,如:表格、字体等样式,效果都不是很理想,不是字体缺失,就是样式错乱,而且解决起来非常麻烦(有可能还解决不了)。

其实,无论选择哪种方案,都需要有个取舍,使用上面的工具,简单、轻量;但是想要效果好,最好的方式还是要有独立的office server,如:LibreOfficeOnlyOffice,因为它们是一套完整的office文档解决方案,并且对外提供API调用。

本文将描述使用onlyoffice将word转换为pdf。

注:使用onlyoffice的前提,需要安装部署onlyoffice,在使用本教程时,确保已部署onlyoffice。

WORD 转 PDF

接口: http://documentServer/ConvertService.ashx

请求方式: POST

Header 参数:

Accept: application/json; // 如果不设置为application/json; 响应的是xml格式
Content-type: application/json;

参数:

{
    "sync" :false, // 是否异步,主要影响转换进度的返回,false时,转换进度直接时100
    "filetype": "docx", // 文档类型
    "key" : "ab2058df4bbc4d2f211abe12646ac883", // 文档的唯一编码,可以是文档的md5,也可以是一个唯一随机串
    "outputtype": "pdf", // 输出文件类型
    "title": "test.docx", // 标题,转换完之后,下载的文件名
    "url" : "文档下载地址" // 文档下载地址,需要访问白名单,供onlyoffice :documentServer 进行访问下载
}

请求示例:

{
    "sync" :false, 
    "filetype": "docx",
    "key" : "ab2058df4bbc4d2f211abe12646ac883",
    "outputtype": "pdf",
    "title": "test.docx",
    "url" : "http://192.19.0.107:9104/api/cgi-bin/oss-service/v1/ali-oss/download/1654f65941404973a280f074b63b8e4b.docx"
}

响应结果:

{
    "fileUrl": "http://documentServer/cache/files/data/conv_ab2058df4bbc4d2f211abe12646ac883_513/output.pdf/test.pdf?md5=6gLrsbSrQb3GjKlx652lgA&expires=1742460434&shardkey=1742284077136&filename=test.pdf", // pdf下载地址
    "fileType": "pdf", // 文件类型
    "percent": 100, // 进度
    "endConvert": true // 是否转换结束
}

fileUrl在浏览器中访问,即可完成pdf下载,也可以通过前端进行控制跳转下载。

附:onlyoffice 支持的转换表:https://api.onlyoffice.com/docs/docs-api/additional-api/conversion-api/conversion-tables/

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/4758.html

分享给朋友:

“使用OnlyOffice进行文档转换” 的相关文章

理解virt、res、shr之间的关系(linux系统篇)

前言想必在linux上写过程序的同学都有分析进程占用多少内存的经历,或者被问到这样的问题——你的程序在运行时占用了多少内存(物理内存)?通常我们可以通过top命令查看进程占用了多少内存。这里我们可以看到VIRT、RES和SHR三个重要的指标,他们分别代表什么意思呢?这是本文需要跟大家一起探讨的问题。...

微信外H5跳转小程序——组件(vue项目)

场景有个H5(vue项目),需要实现点击商品item跳转到小程序,微信内和微信外都要支持,这里我们只介绍一下H5在微信外的跳转。如图所示,红框内是一个商品,就是点击这里,要跳转小程序:配置微信小程序云开发(云函数)1、开通云开发然后选择免费额度2、云开发权限设置找到权限设置,把这里的「未登录用户访问...

基于Spring Cloud+VUE的多租户小程序商城源码「快速二开可商用」

一、系统介绍JooLun平台是一个专注微信快速二开系统研发的平台,采用Java语言开发,使用的是最新微服务前后端分离技术,目前有公众号和小程序商城两个版本,有公众号后台管理、小程序商城。基于Spring Cloud微服务+VUE实现的核心框架多租户小程序商城源码,核心框架采用SpringBoot2+...

TDesign企业级开源设计系统越发成熟稳定,支持 Vue3 / 小程序

TDesing 发展越来越好了,出了好几套组件库,很成熟稳定了,新项目完全可以考虑使用。早在2021年,腾讯的 TDesing 刚发布不久,我就写了一篇简短的文章来介绍,当时主要关注的是 TDesign 的 Vue 组件库和用来搭建 admin 后台系统的实用性。虽然当时看起来不错,但还处于测试版,...

在vue项目中封装WebSockets请求

在Vue项目中封装WebSocket请求包括以下步骤:1. 安装WebSocket库:首先,导入WebSocket库,例如`vue-native-websocket`或`socket.io-client`。根据项目需求选择适当的库,并根据官方文档进行安装和配置。2. 创建WebSocket服务:在V...

three.js cannon.js物理引擎之齿轮动画

今天继续说一说cannon.js物理引擎,并用之前已经学习过的知识实现一个小动画,知识点包括ConvexPolyhedron多边形、Shape几何体、Body刚体、HingeConstraint铰链约束等等知识。因为我之前用纯three.js 的THREEBSP实现过一个静态的齿轮,现在就想配合ca...