如何利用 onlyoffice 实现文档格式转换

前言

日常生活和工作中,文档格式转换应该是很常见的需求。面对这样的需求,我们技术男有没有属于自己的好方法呢?答案是有的,它就是 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必需
Key定义用于明确标识文档文件的文档标识符。string必需
outputtype*定义生成的转换文档类型。string必需
password如果文档文件受密码保护,则定义该文件的密码。string可选
region定义从电子表格格式转换pdf时货币和日期和时间的默认显示格式。使用四个字母(en-USfr-FR等)语言代码进行设置。默认值为en-USstring可选
spreadsheetLayout定义用于将电子表格转换为 pdf 的设置。object可选
spreadsheetLayout.fitToHeight设置转换区域的高度,以页数为单位。默认值为0integer可选
spreadsheetLayout.fitToWidth设置转换区域的宽度,以页数为单位。默认值为0integer可选
spreadsheetLayout.gridLines允许在输出 PDF 文件中包含或不包含网格线。默认值为falseboolean可选
spreadsheetLayout.headings允许在输出 PDF 文件中包含或不包含标题。默认值为falseboolean可选
spreadsheetLayout.ignorePrintArea确定是否忽略为电子表格文件选择的打印区域。默认值为trueboolean可选
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。默认值为portraitstring可选
spreadsheetLayout.pageSize设置输出 PDF 文件的页面大小。object可选
spreadsheetLayout.pageSize.height设置输出 PDF 文件的页面高度。默认值为297 毫米string可选
spreadsheetLayout.pageSize.width设置输出 PDF 文件的页面宽度。默认值为210 毫米string可选
spreadsheetLayout.scale允许设置输出 PDF 文件的比例。默认值为100integer可选
thumbnail将图像格式(bmpgifjpgpng)指定为outputtype时,定义缩略图的设置。object可选
thumbnail.aspect定义使图像适合指定的高度和宽度的模式。
支持的值:
0 - 拉伸文件以适应高度和宽度
1 - 保持图像的方面
2 - 在这种情况下,不使用宽度和高度设置。取而代之的是,页面的公制尺寸转换为 96dpi 的像素。例如,A4 (210x297mm) 页面将变成尺寸为 794x1123pix 的图片。
默认值为:2
integer可选
thumbnail.first定义是仅为第一页还是为所有文档页面生成缩略图。
如果为 false,则将创建包含所有页面缩略图的 zip 存档。
默认值为true
boolean可选
thumbnail.height以像素为单位定义缩略图高度。默认值为100integer可选
thumbnail.width以像素为单位定义缩略图宽度。默认值为100integer可选
title定义转换后的文件名。string可选
token定义以令牌形式添加到文件服务器配置的加密签名。string依赖配置
url定义要转换的文档的绝对 URL。使用本地链接时请务必添加令牌。否则会出现错误。string必需

转换列表

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

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

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

请求示例

接下来介绍一个把 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&amp;expires=1644924337&amp;disposition=attachment&amp;ooname=output.pdf</FileUrl><Percent>100</Percent><EndConvert>True</EndConvert>
</FileResult>

结尾

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

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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值