Skip to content

文字文档转换成 docx (Beta)

将文字文档格式转换成 docx 格式

基本信息

请求路径:POST /api/developer/v1/office/save/as/docx

目前支持的文档类型

文档类型扩展名
文字
.doc .docx .rtf .txt .xml .mhtml .mht .html .htm .uof .dot .wps .wpt .dotx .docm .dotm .wpss .wpso .tpdoc .uot3
参数必须类型说明
Date
string
使用 RFC1123 时间格式的当前时间
Content-Md5
string
HTTP Body 中数据的 MD5 值十六进制表达方式, 必需小写, 如果是 get 请求一律使用 URI 计算 MD5
Content-Type
string
目前固定为: application/json
Authorization
string
"WPS-2:" + app_id + ":" + sha1( app_key + Content-Md5 + Content-Type + DATE)

Body 参数

参数必须类型说明
url
string
文档下载地址
filename
string
文档名称,包含扩展名,例如:demo.doc
password
string
文档打开密码(如果文档有加密,该项则必填)

返回参数

参数必须类型说明
code
integer
错误码
+
data
data {}
响应数据

示例

请求示例

curl --request POST \
	--url https://solution.wps.cn/api/developer/v1/office/save/as/docx \
	--header 'Authorization: WPS-2:******:ac59dac1460772a04b3a97d7ef78409f28241e3a' \
	--header 'Content-Md5: d41d8cd98f00b204e9800998ecf8427e' \
	--header 'Content-Type: application/json' \
	--header 'Date: Wed, 23 Jan 2013 06:43:08 GMT' \
	--data '{"url":"https://***.com/***","filename":"demo.doc"}'
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"url\":\"https://***.com/***\",\"filename\":\"demo.doc\"}");
Request request = new Request.Builder()
	.url("https://solution.wps.cn/api/developer/v1/office/save/as/docx")
	.post(body)
	.addHeader("Date", "Wed, 23 Jan 2013 06:43:08 GMT")
	.addHeader("Content-Md5", "d41d8cd98f00b204e9800998ecf8427e")
	.addHeader("Content-Type", "application/json")
	.addHeader("Authorization", "WPS-2:******:ac59dac1460772a04b3a97d7ef78409f28241e3a")
	.build();

Response response = client.newCall(request).execute();
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "https://solution.wps.cn/api/developer/v1/office/save/as/docx"

	payload := strings.NewReader("{\"url\":\"https://***.com/***\",\"filename\":\"demo.doc\"}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Date", "Wed, 23 Jan 2013 06:43:08 GMT")
	req.Header.Add("Content-Md5", "d41d8cd98f00b204e9800998ecf8427e")
	req.Header.Add("Content-Type", "application/json")
	req.Header.Add("Authorization", "WPS-2:******:ac59dac1460772a04b3a97d7ef78409f28241e3a")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
import http.client

conn = http.client.HTTPSConnection("solution.wps.cn")

payload = "{\"url\":\"https://***.com/***\",\"filename\":\"demo.doc\"}"

headers = {
    'Date': "Wed, 23 Jan 2013 06:43:08 GMT",
    'Content-Md5': "d41d8cd98f00b204e9800998ecf8427e",
    'Content-Type': "application/json",
    'Authorization': "WPS-2:******:ac59dac1460772a04b3a97d7ef78409f28241e3a"
    }

conn.request("POST", "/api/developer/v1/office/save/as/docx", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, [
	CURLOPT_URL => "https://solution.wps.cn/api/developer/v1/office/save/as/docx",
	CURLOPT_RETURNTRANSFER => true,
	CURLOPT_ENCODING => "",
	CURLOPT_MAXREDIRS => 10,
	CURLOPT_TIMEOUT => 30,
	CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
	CURLOPT_CUSTOMREQUEST => "POST",
	CURLOPT_POSTFIELDS => "{\"url\":\"https://***.com/***\",\"filename\":\"demo.doc\"}",
	CURLOPT_HTTPHEADER => [
		"Authorization: WPS-2:******:ac59dac1460772a04b3a97d7ef78409f28241e3a",
		"Content-Md5: d41d8cd98f00b204e9800998ecf8427e",
		"Content-Type: application/json",
		"Date: Wed, 23 Jan 2013 06:43:08 GMT"
	],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
	echo "cURL Error #:" . $err;
} else {
	echo $response;
}
const data = JSON.stringify({
	"url": "https://***.com/***",
	"filename": "demo.doc"
});

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
	if (this.readyState === this.DONE) {
		console.log(this.responseText);
	}
});

xhr.open("POST", "https://solution.wps.cn/api/developer/v1/office/save/as/docx");
xhr.setRequestHeader("Date", "Wed, 23 Jan 2013 06:43:08 GMT");
xhr.setRequestHeader("Content-Md5", "d41d8cd98f00b204e9800998ecf8427e");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Authorization", "WPS-2:******:ac59dac1460772a04b3a97d7ef78409f28241e3a");

xhr.send(data);
const http = require("https");

const options = {
	"method": "POST",
	"hostname": "solution.wps.cn",
	"port": null,
	"path": "/api/developer/v1/office/save/as/docx",
	"headers": {
		"Date": "Wed, 23 Jan 2013 06:43:08 GMT",
		"Content-Md5": "d41d8cd98f00b204e9800998ecf8427e",
		"Content-Type": "application/json",
		"Authorization": "WPS-2:******:ac59dac1460772a04b3a97d7ef78409f28241e3a"
	}
};

const req = http.request(options, function (res) {
	const chunks = [];

	res.on("data", function (chunk) {
		chunks.push(chunk);
	});

	res.on("end", function () {
		const body = Buffer.concat(chunks);
		console.log(body.toString());
	});
});

req.write(JSON.stringify({url: 'https://***.com/***', filename: 'demo.doc'}));
req.end();
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_URL, "https://solution.wps.cn/api/developer/v1/office/save/as/docx");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Date: Wed, 23 Jan 2013 06:43:08 GMT");
headers = curl_slist_append(headers, "Content-Md5: d41d8cd98f00b204e9800998ecf8427e");
headers = curl_slist_append(headers, "Content-Type: application/json");
headers = curl_slist_append(headers, "Authorization: WPS-2:******:ac59dac1460772a04b3a97d7ef78409f28241e3a");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\"url\":\"https://***.com/***\",\"filename\":\"demo.doc\"}");

CURLcode ret = curl_easy_perform(hnd);
var client = new RestClient("https://solution.wps.cn/api/developer/v1/office/save/as/docx");
var request = new RestRequest(Method.POST);
request.AddHeader("Date", "Wed, 23 Jan 2013 06:43:08 GMT");
request.AddHeader("Content-Md5", "d41d8cd98f00b204e9800998ecf8427e");
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "WPS-2:******:ac59dac1460772a04b3a97d7ef78409f28241e3a");
request.AddParameter("application/json", "{\"url\":\"https://***.com/***\",\"filename\":\"demo.doc\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

返回示例

json
{
  "code": 0,
  "data": {
    "task_id": "open:zjsiwfuotpbqblrlfwtkfkioargjbla"
  },
  "result": "ok"
}

查询异步任务结果

携带 task_id 查询结果

其中 result 对象说明

参数必须类型说明
url
string
转换后的文件下载地址(半小时有效)
size
int
转换后的文件大小(以字节为单位)

返回示例

json
{
  "code": 0,
  "data": {
    "status": "success",
    "progress": 100,
    "result": {
      "url": "https://***.com/***",
      "size": 70154,
      "task": {"elapsed":7892,"resource_size":1070216}
    }
  }
}

错误码

请参考错误码说明