1

#私藏项目实操分享#如何利用 onlyoffice 实现文档格式转换

 2 years ago
source link: https://blog.51cto.com/u_14832233/5018837
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

目录

 ​前言​

 ​正文​

 ​启动 onlyoffice 服务​

 ​API 接口介绍​

 ​转换列表​

 ​请求示例​

 ​结尾​


日常生活和工作中,文档格式转换应该是很常见的需求。面对这样的需求,我们技术男有没有属于自己的好方法呢?答案是有的,它就是 onlyoffice,今天就来介绍如何利用 onlyoffice 实现文档格式转换。

启动 onlyoffice 服务

首先,我们以容器的方式启动一个 onlyoffice 服务,服务端口映射 9080。

服务地址:

 ​http://127.0.0.1:9080/ConvertService.ashx​

API 接口介绍

官方的 onlyoffice 版本在 4.2 之前使用的请求是 Get 类型,之后的版本使用的请求类型是 Post,这一点需要我们特别注意。下面的表格是关于格式转换 API 参数的详细介绍。

Async

定义转换请求类型:异步与否。

支持的值:

true

false

当使用异步请求类型时,立即形成响应。

在这种情况下,要获得结果,必须在转换完成之前发送不更改参数的请求。

默认值为false

boolean

codePage

定义从csvtxt格式转换时的文件编码。

主要支持的值:

932 - 日语(Shift-JIS)

950 - 中国繁体(Big5)

1250 - 中欧(视窗)

1251 - 西里尔文(视窗)

65001 - Unicode (UTF-8)。

您可以​ ​在此文件中​​找到所有支持的值。

integer

Delemiter

定义从csv格式转换时用于分隔值的分隔符。

支持的值:

0 - 没有分隔符

1 - 标签

2 - 分号

3 - 冒号

4 - 逗号

5 - 空间。

integer

fileType*

定义要转换的文档文件的类型。

string

定义用于明确标识文档文件的文档标识符。

string

outputtype*

定义生成的转换文档类型。

string

password

如果文档文件受密码保护,则定义该文件的密码。

string

region

定义从电子表格格式转换pdf时货币和日期和时间的默认显示格式。使用四个字母(en-USfr-FR等)语言代码进行设置。默认值为en-US

string

spreadsheetLayout

定义用于将电子表格转换为 pdf 的设置。

object

spreadsheetLayout.fitToHeight

设置转换区域的高度,以页数为单位。默认值为0

integer

spreadsheetLayout.fitToWidth

设置转换区域的宽度,以页数为单位。默认值为0

integer

spreadsheetLayout.gridLines

允许在输出 PDF 文件中包含或不包含网格线。默认值为false

boolean

spreadsheetLayout.headings

允许在输出 PDF 文件中包含或不包含标题。默认值为false

boolean

spreadsheetLayout.ignorePrintArea

确定是否忽略为电子表格文件选择的打印区域。默认值为true

boolean

spreadsheetLayout.margins

设置输出 PDF 文件的边距。

object

spreadsheetLayout.margins.bottom

设置输出 PDF 文件的下边距。默认值为19.1 毫米

string

spreadsheetLayout.margins.left

设置输出 PDF 文件的左边距。默认值为17.8 毫米

string

spreadsheetLayout.margins.right

设置输出 PDF 文件的右边距。默认值为17.8 毫米

string

spreadsheetLayout.margins.top

设置输出 PDF 文件的上边距。默认值为19.1 毫米

string

spreadsheetLayout.orientation

设置输出 PDF 文件的方向。可能是landscapeportrait。默认值为portrait

string

spreadsheetLayout.pageSize

设置输出 PDF 文件的页面大小。

object

spreadsheetLayout.pageSize.height

设置输出 PDF 文件的页面高度。默认值为297 毫米

string

spreadsheetLayout.pageSize.width

设置输出 PDF 文件的页面宽度。默认值为210 毫米

string

spreadsheetLayout.scale

允许设置输出 PDF 文件的比例。默认值为100

integer

thumbnail

将图像格式(bmpgifjpgpng)指定为outputtype时,定义缩略图的设置。

object

thumbnail.aspect

定义使图像适合指定的高度和宽度的模式。

支持的值:

0 - 拉伸文件以适应高度和宽度

1 - 保持图像的方面

2 - 在这种情况下,不使用宽度和高度设置。取而代之的是,页面的公制尺寸转换为 96dpi 的像素。例如,A4 (210x297mm) 页面将变成尺寸为 794x1123pix 的图片。

默认值为:2

integer

thumbnail.first

定义是仅为第一页还是为所有文档页面生成缩略图。

如果为 false,则将创建包含所有页面缩略图的 zip 存档。

默认值为true

boolean

thumbnail.height

以像素为单位定义缩略图高度。默认值为100

integer

thumbnail.width

以像素为单位定义缩略图宽度。默认值为100

integer

title

定义转换后的文件名。

string

token

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

string

定义要转换的文档的绝对 URL。使用本地链接时请务必添加令牌。否则会出现错误。

string

下面是文本文档文件格式可以转换成其他格式的列表,第一列是源格式,从第二列到最后一列是可以转换成的其他格式,其中深色圆点表示支持,浅色圆点表示不支持。

#私藏项目实操分享#如何利用 onlyoffice 实现文档格式转换_默认值

#私藏项目实操分享#如何利用 onlyoffice 实现文档格式转换_格式转换_02下面是电子表格文件格式可以转换成其他格式的列表,第一列是源格式,从第二列到最后一列是可以转换成的其他格式,其中深色圆点表示支持,浅色圆点表示不支持。

#私藏项目实操分享#如何利用 onlyoffice 实现文档格式转换_默认值_03

#私藏项目实操分享#如何利用 onlyoffice 实现文档格式转换_默认值_04下面是演示文稿格式可以转换成其他格式的列表,第一列是源格式,从第二列到最后一列是可以转换成的其他格式,其中深色圆点表示支持,浅色圆点表示不支持。

#私藏项目实操分享#如何利用 onlyoffice 实现文档格式转换_默认值_05

#私藏项目实操分享#如何利用 onlyoffice 实现文档格式转换_格式转换_06

接下来介绍一个把 docx 格式的文件转成 pdf 格式文件的请求示例:

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

返回结果:

<?xml version="1.0" encoding="utf-8"?>
<FileResult>
<FileUrl>http://101.200.154.81:9080/cache/files/conv_Kheirdze1d6zdT3dePedfd78_pdf/output.pdf/test.pdf?md5=RlFbt79mXSUBieoAbPrylw&expires=1644924337&disposition=attachment&ooname=output.pdf</FileUrl>
<Percent>100</Percent>
<EndConvert>True</EndConvert>
</FileResult>

#私藏项目实操分享#如何利用 onlyoffice 实现文档格式转换_默认值_07

好了,如何利用 onlyoffice 实现文档格式转换的方法就介绍完了,是不是很简单。需要注意的是所有的转换请求参数都是 JSON 格式,但是返回结果是 XML 格式,这一点我们需要特别注意,避免解析失败。

参考链接:​ ​api.onlyoffice.com/editors/con…​


作者简介:?大家好,我是 Data-Mining(liuzhen007),是一位典型的音视频技术爱好者,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音视频直播和点播相关经验,对 WebRTC、FFmpeg 和 Electron 有非常深入的了解,?公众号:玩转音视频。同时也是 、华为云享专家(共创编辑)、InfoQ 签约作者,欢迎关注我分享更多干货!?


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK