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

news2024/10/5 17:24:33

作者:天哥

上一期我们介绍了 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将极大的方便前端开发者,将各种类型的办公文件进行格式的互相转换,为最终使用者提供无障碍的使用体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1077300.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Visual Studio 2022新建项目时没有ASP.NET项目

一、Visual Studio 2022新建项目时没有ASP.NET项目 1、打开VS开发工具&#xff0c;选择工具菜单&#xff0c;点击“获取工具和功能” 2、选择“ASP.NET和Web开发”和把其他项目模板&#xff08;早期版本&#xff09;勾选上安装即可

C/C++实现简单高并发http服务器

基础知识 html&#xff0c;全称为html markup language&#xff0c;超文本标记语言。 http&#xff0c;全称hyper text transfer protocol&#xff0c;超文本传输协议。用于从万维网&#xff08;WWW&#xff1a;World Wide Web&#xff09;服务器传输超文本到本地浏览器的传送…

网络安全(黑客)—小白自学

前言 一、什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防…

什么牌子洗地机最好最实用?口碑最好的洗地机排名

洗地机具备吸拖扫洗一体的特点&#xff0c;专治各种懒病&#xff0c;面对众多的洗地机&#xff0c;对于一些新手来说一时之间无从选择&#xff0c;今天笔者给大家介绍几款近期口碑比较好的家用洗地机。 洗地机洗地机合适的人群&#xff1a; 家里有小宝宝&#xff1a;一般2-10…

前端js八股文大全

一、js的数据类型 值类型(基本类型)&#xff1a;数字(Number)、字符串&#xff08;String&#xff09;、布尔(Boolean)、对空&#xff08;Null&#xff09;、未定义&#xff08;Undefined&#xff09;、Symbol,大数值类型(BigInt) 引用数据类型&#xff1a;对象(Object)、数组…

mysql面试题30:什么是数据库连接池、应用程序和数据库建立连接的过程、为什么需要数据库连接池、你知道哪些数据库连接池

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:什么是数据库连接池? 数据库连接池是一种用于管理和复用数据库连接的技术。它是在应用程序和数据库之间建立一组数据库连接,并以池的形式存储起…

linux——多线程,线程控制

目录 一.POSIX线程库 二.线程创建 1.创建线程接口 2.查看线程 3.多线程的健壮性问题 4.线程函数参数传递 5.线程id和地址空间 三.线程终止 1.pthread_exit 2.pthread_cancel 四.线程等待 五.线程分离 一.POSIX线程库 站在内核的角度&#xff0c;OS只有轻量级进程…

TensorFlow入门(十六、识别模糊手写图片)

TensorFlow在图像识别方面,提供了多个开源的训练数据集,比如CIFAR-10数据集、FASHION MNIST数据集、MNIST数据集。 CIFAR-10数据集有10个种类,由6万个32x32像素的彩色图像组成,每个类有6千个图像。6万个图像包含5万个训练图像和1万个测试图像。 FASHION MNIST数据集由衣服、鞋子…

软件行业与就业(导师主讲)

在企业软件应用的整体架构体系中&#xff0c;有一部分被称为中间件&#xff0c;那么什么叫中间件&#xff1f; 中间件&#xff08;Middleware&#xff09;是指位于操作系统和应用程序之间的一层软件层&#xff0c;它提供了一组工具和服务&#xff0c;用于简化和增强企业软件应用…

Generative AI 新世界 | 文生图领域动手实践:预训练模型的微调

在上期文章&#xff0c;我们探讨了预训练模型的部署和推理&#xff0c;包括运行环境准备、角色权限配置、支持的主要推理参数、图像的压缩输出、提示工程 (Prompt Engineering)、反向提示 (Negative Prompting) 等内容。 亚马逊云科技开发者社区为开发者们提供全球的开发技术资…

掌握C语言:开启编程世界的大门

掌握C语言&#xff1a;开启编程世界的大门 C语言编写的程序通常更高效&#xff0c;代码行数更少&#xff0c;适用于需要高性能的场景。掌握C语言还为你打开了学习其他高级编程语言的大门。C语言拥有庞大的开源社区和丰富的现成代码库&#xff0c;为你快速开发算法和函数提供了…

Nginx配置ssl证书(https证书)

Nginx配置ssl证书(https证书) 安装nginxNginx 的 SSL 模块安装下载Nginx 服务证书配置nginx.conf 安装nginx 搭建服务器,安装docker-compose https://blog.csdn.net/qq_33240556/article/details/124789530 安装docker-compose nginx https://blog.csdn.net/qq_33240556/artic…

做运维有前途吗?

不管男生女生&#xff0c;都不建议做运维&#xff01;&#xff01;就一个原因&#xff0c;性价比太低&#xff01;需要会的东西多&#xff0c;没有一个统一的运维标准&#xff01;你心目中的运维和别人心目中的运维&#xff0c;不是一个运维&#xff01;也不建议做测试&#xf…

【软件测试】博客系统项目测试报告(ssm项目)

文章目录 一. 报告概要二. 引言三. 测试环境四. 测试执行概况及功能测试1. 手工测试1.1 编写测试用例1.2 执行部分测试用例 2. 自动化测试Selenium2.1 编写测试用例2.2自动化测试代码1. 自动化测试工具类2. 博客登录页测试3. 博客注册页4. 博客详情页5. 博客编辑页6. 博客列表页…

易点易动:解决纸质固定资产审批痛点,助您高效自定义审批流程

固定资产审批是企业日常管理中不可或缺的环节&#xff0c;然而&#xff0c;传统的纸质审批流程常常面临繁琐、低效的问题。易点易动作为一款先进的固定资产管理系统&#xff0c;以其自定义设置流程的特点&#xff0c;为企业打破审批瓶颈&#xff0c;实现高效审批提供了理想解决…

轻量级虚拟化技术草稿

Support Tech ST.1 virtiofs ST.1.1 fuse framework 引用wiki中关于fuse的定义&#xff1a; Filesystem in Userspace (FUSE) is a software interface for Unix and Unix-like computer operating systems that lets non-privileged users create their own file systems w…

Python 编程基础概念

目录 1 Python程序的构成1.1 使用\行连接符 2 对象3 引用4 标识符4.1 Python标识符命名规则 5 变量和简单赋值语句5.1 变量的声明和赋值5.2 删除变量和垃圾回收机制5.3 链式赋值5.4 系列解包赋值5.5 常量 6 最基本内置数据类型和运算符6.1 基本运算符6.2 整数6.3 浮点数6.4 类型…

华为数通方向HCIP-DataCom H12-831题库(多选题:241-259)

第241题 设备产生的信息可以向多个方向输出信息,为了便于各个方向信息的输出控制,信息中心定义了10条信息通道,使通道之间独立输出,缺省情况下,以下哪些通道对应的输出方向可以接收Trap信息? A、console通道 B、logbuffer通道 C、snmpagent通道 D、trapbuffer通道 答案:…

山西电力市场日前价格预测【2023-10-11】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-10-11&#xff09;山西电力市场全天平均日前电价为507.37元/MWh。其中&#xff0c;最高日前电价为873.70元/MWh&#xff0c;预计出现在18: 45。最低日前电价为313.23元/MWh&#xff0c;预计…