当前位置: 首页 > news >正文

如何使用 ONLYOFFICE API 转换办公文档格式

作者:天哥

上一期我们介绍了 ONLYOFFICE 的文档生成器API接口函数库。这一期我们继续介绍ONLYOFFICE 的文件转换API接口函数库。

为什么要使用 ONLYOFFICE 转换API

ONLYOFFICE 转换 API 有助于转换大部分类型的Office文档:文本、表格、幻灯片、表单、PDF、电子书等。

支持大部分流行的格式:将文档、表格或幻灯片转化为PDF,将课本转化为电子书,将演示文稿转换为图像文件,等等。ONLYOFFICE支持超过50种文档格式。

高级设置:添加转换设置,以便转换CSV文件时定义分隔符,转换电子表格时定义默认货币显示模式,或以便设置输出PDF文件的页面大小和页边距,等等。并提供完备的API文档,可以参考所有可用的选项。

高质量的转换:ONLYOFFICE不断改进服务,为所有转换类型提供高质量的结果。

安全性:ONLYOFFICE的开放源代码可在GitHub上找到,这确保ONLYOFFICE的透明度和可靠性。JSON网络令牌保护文件免受未经授权的访问。

工作原理

ONLYOFFICE文档服务器对文档的处理是非常简单的,但是需要理解其工作原理,当你点击一个文档在浏览器页面里打开的时候、保存文档的时候、或者从计算机上传到服务器的时候,它是如何工作的。

使用者和文档之间的交互由客户端和服务器端共同实现。下面介绍一下一些基本概念。

客户端包括:

  • 文档管理器:文档的列表显示在使用者的浏览器里面,使用者可以选择文档对其操作,根据对使用者赋予的权限,他可以打开文档阅览或者编辑,或者分享给其他使用者。
  • 文档编辑器:文档阅览和编辑界面,包含几乎所有一直的文档编辑功能特征,作为一个中介媒介,连接起来了使用者和文档编辑服务器

服务器端包括:

  • 文档存储服务:存储所有文档的服务器端,将文档以设定的权限提供给使用者。他提供了文档的ID号和文档的链接的信息发送给文档管理器,使用者就可以在浏览器里看到文档列表。
  • 文档编辑服务:提供对文档进行阅览和编辑功能的服务器端,前提是使用者被赋予相应的权限,文档编辑器界面被用来访问所有的文档编辑服务的功能特征。
  • 文档命令服务:提供执行特别命令操作的文档编辑服务
  • 文档转换服务:提供文档转换功能的服务器端,转换为开放文档格式Open XML,例如文本文档的docx、表格文档的xlsx、以及演示幻灯片的pptx,编辑或者下载。
  • 文档生成器服务:不需要实际打开运行一个文档编辑器而通过API生成文档的服务。

注意,ONLYOFFICE文档服务器包含这个文档编辑器、文档编辑服务、文档命令服务、文档转换服务、以及文档生成器服务。而文档管理器和文档存储服务由ONLYOFFICE社区服务器Community Server提供,或者由其它开发集成商开发实现,在自己的服务器上安装部署ONLYOFFICE的文档服务器。

文档转换服务是ONLYOFFICE文档服务器的一部分,它使得使用者可以转换文件格式以便在文档编辑器中打开或者导出文件。有两种情况会使用到文档转换服务。

文档编辑需要临时转换

文档编辑器想要正确的处理文档,就需要将其转换为开放文档格式OpenXML: * docx文档文件 * xlsx表格文件 * pptx幻灯片演示文件 如下图所示,文档编辑临时转换格式:

  1. 使用者在本地计算机硬盘上选择一个文件,将其上传到文档管理器
  2. 文档管理器上传所选择的文件到文档存储服务
  3. 文档存储服务发送该上传的文件到ONLYOFFICE文档服务器的文档转换服务,调用转换API将其转换为开放文档格式。
  4. 文档转换服务将选择的文件转换为开放文档格式。
  5. 文档存储服务下载转换好的文件。

文档输出

当使用者需要下载为某种格式的时候,ONLYOFFICE文档服务器将存储在文档存储服务的相应文件转换为使用者所需的格式。 如下图所示,文档转换格式输出过程:

  1. 使用者在文档管理器上选择文件并选择以某种格式下载。
  2. 文档管理器将使用者的这个操作翻译为一个内部的网络request请求发送给文档存储服务
  3. 文档存储服务发送这个上传的文件给ONLYOFFICE文档服务器的文档转换服务,使用转换API来来转换格式。
  4. 文档转换服务将选择的文件转换到指定的格式。
  5. 转换完成,文档存储服务下载最终文件。
  6. 文档存储服务通知文档管理器转换已完成。
  7. 文档管理器下载最终文件。

文档转换API

为了与文档转换服务交互,需要使用POST请求。请求参数以JSON格式输入到请求体中,请求需要发送至地址https://documentserver/ConvertService.ashx,这里的documentserver是ONLYOFFICE文档服务器的服务器名称

请求参数

参数

说明

类型

必要性

filetype

来源文档类型

字符串

必须项

key

文档辨识符id号,用来区分文档

字符串

必须项

outputtype

设定要转换为的文档类型,除了可以用后缀名区分之外,也可以用类型设定ooxml 开放文档格式,即docx、docm、xlsx、xlsm、pptx、pptmodf 开源格式即odt、ods、odp

字符串

必须项

token

以令牌形式添加到文档服务器配置的加密签名。

字符串

依据配置而必须项

url

文档的绝对路径,使用本地链接时请务必添加令牌,否则会报错

字符串

必须项

此表只列举了必须项目,请求参数里可选的参数的细节,详见开发手册:ONLYOFFICE 转换 API

文本文档格式表

输入格式

输出格式

bmp

docm

docx

docxf

dotm

dotx

epub

fb2

gif

html

jpg

odt

ott

pdf

pdfa

png

rtf

txt

djvu

doc

docm

docx

docxf

dot

dotm

dotx

epub

fb2

fodt

htm

html

mht

mhtml

odt

ott

oxps

pdf

rtf

stw

sxw

txt

wps

wpt

xml

xps

表格文档格式表

输入格式

输出格式

bmp

csv

gif

jpg

ods

ots

pdf

pdfa

png

xlsm

xlsx

xltm

xltx

csv

et

ett

fods

ods

ots

sxc

xls

xlsb

xlsm

xlsx

xlt

xltm

xltx

xml

演示文档格式表

输入格式

输出格式

bmp

gif

jpg

odp

otp

pdf

pdfa

png

potm

potx

ppsm

ppsx

pptm

pptx

dps

dpt

fodp

odp

otp

pot

potm

potx

pps

ppsm

ppsx

ppt

pptm

pptx

sxi

请求示例

发送给文档转换服务的JSON对象的示例,请求将docx文件转换为pdf文件:

{"async": false,"filetype": "docx","key": "Khirz6zTPdfd7","outputtype": "pdf","title": "Example Document Title.docx","url": "https://example.com/url-to-example-document.docx"}

其中example.com是文档管理器和文档存储服务所安装部署的服务器的地址。

将带有密码保护的docx文件转换为pdf文件:

{"async": false,"filetype": "docx","key": "Khirz6zTPdfd7","outputtype": "pdf","password": "123456","title": "Example Document Title.docx","url": "https://example.com/url-to-example-document.docx"}

从docx文件生成png缩略图:

{"filetype": "docx","key": "Khirz6zTPdfd7","outputtype": "png","thumbnail": {"aspect": 0,"first": true,"height": 150,"width": 100},"title": "Example Document Title.docx","url": "https://example.com/url-to-example-document.docx"}

表格文件转为pdf格式:

{"filetype": "xlsx","key": "Khirz6zTPdfd7","outputtype": "pdf","region": "en-US","spreadsheetLayout": {"ignorePrintArea": true,"orientation": "portrait","fitToWidth": 0,"fitToHeight": 0,"scale": 100,"headings": false,"gridLines": false,"pageSize": {"width": "210mm","height": "297mm"},"margins": {"left": "17.8mm","right": "17.8mm","top": "19.1mm","bottom": "19.1mm"}},"title": "Example Document Title.docx","url": "https://example.com/url-to-example-spreadsheet.xlsx"}

响应回传参数

请求的结果返回来为XML格式,如果要得到JSON格式的响应,需要指定HTTP请求的ACCEPT头的application/json参数值。当生成结果文件的链接时,会使用请求包所用的同一个服务器名。

参数

说明

类型

示例

endConvert

转换是否完成

boolean

true

error

错误信息代码

integer

-3

fileType

输出文件的扩展名

string

docm

fileUrl

输出文件的链接,只有当endConvert参数为真时才会出现

string

https://documentserver/url-to-converted-document.pdf

percent

文件转换执行进度 如果endConvert为真则此为100

integer

100

返回为XML格式的示例:

<?xml version="1.0" encoding="utf-8"?><FileResult><EndConvert>True</EndConvert><FileType>docm</FileType><FileUrl>https://documentserver/url-to-converted-document.pdf</FileUrl><Percent>100</Percent></FileResult>

返回为JSON格式的示例:

{"endConvert": true,"fileType": "docm","fileUrl": "https://documentserver/url-to-converted-document.pdf","percent": 100}

异步模式的响应包的XML格式示例:

<?xml version="1.0" encoding="utf-8"?><FileResult><EndConvert>False</EndConvert><FileType></FileType><FileUrl></FileUrl><Percent>95</Percent></FileResult>

异步模式的响应包的JSON格式示例:

{"endConvert": false,"percent": 95}

返回一个错误码的响应包XML格式示例:

<?xml version="1.0" encoding="utf-8"?><FileResult><Error>-3</Error></FileResult>

返回一个错误码的响应包JSON格式示例:

{"error": -3}

错误码信息:

错误码

意义

-1

未知错误

-2

转换超时

-3

转换出错

-4

下载过程出错

-5

密码错误

-6

访问转换结果数据库出错

-7

输入错误

-8

无效令牌

例如-8将在浏览器中得到如下画面

使用文件转换API将极大的方便前端开发者,将各种类型的办公文件进行格式的互相转换,为最终使用者提供无障碍的使用体验。

相关文章:

如何使用 ONLYOFFICE API 转换办公文档格式

作者&#xff1a;天哥 上一期我们介绍了 ONLYOFFICE 的文档生成器API接口函数库。这一期我们继续介绍ONLYOFFICE 的文件转换API接口函数库。 为什么要使用 ONLYOFFICE 转换API ONLYOFFICE 转换 API 有助于转换大部分类型的Office文档&#xff1a;文本、表格、幻灯片、表单、P…...

最新抖音去水印PHP源码 非第三方接口

简介&#xff1a; 最新抖音去水印PHP源码 非第三方接口 源码全开源 视频解析接口来自官方抖音视频接口!非第三方接口!上传PHP环境中即可运行!支持上传二级目录访问! 访问你的域名地址/douyin.php douyin.php(此文件可以自行重新命名) 支持带有文本的链接和视频ID或者分享的…...

MYSQL 高级SQL语句(二)

表连接查询 MYSQL数据库中的三种连接&#xff1a; inner join(内连接)&#xff1a;只返回两个表中联结字段相等的行&#xff08;有交集的值&#xff09;left join(左连接)&#xff1a;返回包括左表中的所有记录和右表中联结字段相等的记录right join(右连接)&#xff1a;返回…...

本地计算机端口显示CLOSE_WAIT、TIME_WAIT、ESTABLISHED、三种情况的区别

本地计算机端口显示 “CLOSE_WAIT”、“TIME_WAIT” 和 “ESTABLISHED” 表示不同的TCP连接状态&#xff0c;它们之间的区别如下&#xff1a; CLOSE_WAIT&#xff08;关闭等待&#xff09;&#xff1a; 在此状态下&#xff0c;本地计算机已经接收到来自远程计算机的关闭请求&am…...

粘性文本整页滚动效果

效果展示 CSS 知识点 background 相关属性综合运用position 属性的 sticky 值运用scroll-behavior 属性运用scroll-snap-type 属性运用scroll-snap-align 属性运用 整体页面效果实现 <div class"container"><!-- 第一屏 --><div class"sec&qu…...

【Oracle】Oracle系列十九--Oracle的体系结构

文章目录 往期回顾前言1. 物理结构2. 内存结构2.1 SGA2.2 后台进程 3. 逻辑结构 往期回顾 【Oracle】Oracle系列之一–Oracle数据类型 【Oracle】Oracle系列之二–Oracle数据字典 【Oracle】Oracle系列之三–Oracle字符集 【Oracle】Oracle系列之四–用户管理 【Oracle】Or…...

Flink-SQL join 优化 -- MiniBatch + local-global

背景 问题1. 近期在开发flink-sql期间&#xff0c;发现数据在启动后&#xff0c;任务总是进行重试&#xff0c;运行一段时间后&#xff0c;container心跳超时&#xff0c;内存溢出&#xff0c;作业无法进行正常工作 023-10-07 14:53:30,408 | INFO | [flink-akka.actor.defa…...

在c#中使用NPOI结合Magicodes.IE.excel将xlsx文件内存中转换为xls文件

项目中使用Magicodes.IE作为导出excel的组件&#xff0c;但只支持新格式xlsx&#xff0c;有需求要导出旧格式xls文件&#xff0c;因此只能考虑转换的方案&#xff0c;经多种方案尝试和查找相关解决方案&#xff0c;在一份使用NPOI转换的xlsx到xls的文章到找到相关代码&#xff…...

面试经典 150 题 14 —(数组 / 字符串)— 134. 加油站

134. 加油站 方法一 class Solution { public:int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {int minSpare std::numeric_limits<int>::max(); // 初始化最小剩余汽油量为整型的最大值int spare 0; // 当前剩余汽油量int len g…...

如何设计一个安全的对外接口?

转载 https://blog.csdn.net/weixin_46742102/article/details/108831868?spm1001.2101.3001.6650.1&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-108831868-blog-125359890.235%5Ev38%5Epc_relevant_anti_t3_base&depth_1-utm_…...

模拟pdf运行js脚本触发xss攻击及防攻击

一、引入pdfbox依赖 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>3.0.0</version> </dependency> 二、生成一个带js脚本的pdf文件 //Creating PDF document object PDDocum…...

【数据结构】树和二叉树概念及其结构

目录 一 树概念及结构 1 树的概念 2 树的相关概念 3 树的表示 二 二叉树概念及结构 1 概念 2 特殊二叉树 3 二叉树的性质 一 树概念及结构 1 树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集…...

刘京城:我的《软件方法》学习经历(有彩蛋)

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 写在前面&#xff08;潘加宇&#xff09; 下面是刘京城写的关于他学习《软件方法》的经历。我在前面啰嗦几句。 我做软件建模方面的研究和普及工作已经24年了&#xff0c;和各行各业…...

浏览器详解(四) 渲染

大家好&#xff0c;我是半虹&#xff0c;这篇文章来讲浏览器渲染 1、基本介绍 浏览器是多进程多线程的架构&#xff0c;包括有浏览器进程、渲染器进程、GPU 进程、插件进程等 在上篇文章中我们介绍过浏览器进程&#xff0c;作为浏览器主进程&#xff0c;负责浏览器基本界面的…...

idea新建一个module时,文件夹显示灰色/pom.xml文件显示灰色且中间有条横线

1.问题 2.解决方法 File->Settings->Ignored Files->找到勾选的pom.xml文件&#xff0c;取消勾选&#xff0c;点击ok即可。 3.已解决...

NoSQL数据库(林子雨慕课课程)

文章目录 5.1 NoSQL数据库5.2 NoSQL和关系数据库的比较5.3 四大类型NoSQL数据库5.3.1 键值数据库和列族数据库5.3.2 文档数据库、图数据库、以及不同数据库比较分析 5.4 NoSQL数据库的理论基石CAP理论&#xff1a;BASE理论&#xff1a;Eventual consistency&#xff08;最终一致…...

模拟器运行在AndroidStudio内部,设置其独立窗口显示

在窗口内部运行 设置成独立窗口 Android Studio->Settings或Preferences->Tools->Emulator->取消勾选Launch in the Running Devices tool window --->点击右下角的OK按钮 ---> 重启Android Studio 再次启动模拟器...

计算机网络 | 体系结构

计算机网络 | 体系结构 计算机网络 | 体系结构概念及功能计算机网络简介计算机网络的功能因特网发展阶段小结 组成与分类计算机网络的组成计算机网络的分类小结 标准化工作及相关组织速率相关性能指标速率带宽吞吐量小结 时延相关性能指标时延时延带宽积往返时延RTT利用率小结 …...

ELK 处理 SpringCloud 日志

在排查线上异常的过程中&#xff0c;查询日志总是必不可缺的一部分。现今大多采用的微服务架构&#xff0c;日志被分散在不同的机器上&#xff0c;使得日志的查询变得异常困难。工欲善其事&#xff0c;必先利其器。如果此时有一个统一的实时日志分析平台&#xff0c;那可谓是雪…...

mac使用python递归删除文件夹下所有的.DS_Store文件

import osfolder_path "yourself file path"for root, dirs, files in os.walk(folder_path):for filename in files:if filename .DS_Store:file_path os.path.join(root, filename)os.remove(file_path)print("delete ok")...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...