---
title: "通过 REST API 导出 DOC"
description: "了解如何使用 Tiptap Conversion REST API v2 将 Tiptap JSON 文档导出为 DOC 格式（传统 Microsoft Word）。"
canonical_url: "https://tiptap.zhcndoc.com/conversion/export/doc/rest-api"
---

# 通过 REST API 导出 DOC

了解如何使用 Tiptap Conversion REST API v2 将 Tiptap JSON 文档导出为 DOC 格式（传统 Microsoft Word）。

- **1. 激活试用或订阅**

  在您的账户中开始一个 免费试用 或 订阅 Start 计划。
- **2. 配置 Convert 应用**

  使用带有 `aud: "Convert"` 的签名令牌对 REST 调用进行身份验证。请参阅 [身份验证](https://tiptap.zhcndoc.com/authentication.md)。

DOC 导出 API 将 Tiptap JSON 文档转换为 DOC 文件（传统 Microsoft Word 97-2003 格式）。

> **建议改用 DOCX:**
>
> DOC 格式是 Microsoft Word 97-2003 的传统格式。对于现代应用，我们推荐导出为 DOCX 格式。仅在需要兼容旧系统时使用 DOC。

> **查看 Postman 集合:**
>
> 您也可以通过我们的 Postman 集合 来体验文档转换 API。

## 导出 DOC

`POST /v2/convert/export/doc`

`/v2/convert/export/doc` 端点将 Tiptap JSON 文档转换为 DOC 格式。发送包含文档 JSON 的 `POST` 请求，即可获得可下载的 DOC 文件。

### 示例（cURL）

```bash
curl --output document.doc -X POST "https://api.tiptap.dev/v2/convert/export/doc" \
    -H "Authorization: Bearer YOUR_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
      "doc": "{\"type\":\"doc\",\"content\":[{\"type\":\"paragraph\",\"content\":[{\"type\":\"text\",\"text\":\"Hello World\"}]}]}"
    }'
```

> **需要订阅:**
>
> 此端点需要有效的 Tiptap 订阅。详情请参阅我们的 定价页面。

### 必填请求头

| Name            | Description                               |
| --------------- | ----------------------------------------- |
| `Authorization` | 用于验证请求的 JWT 令牌。示例：`Bearer your-jwt-token` |
| `Content-Type`  | 必须为 `application/json`                    |

### 请求体

| 名称                   | 类型       | 描述                     | 默认值         |
| -------------------- | -------- | ---------------------- | ----------- |
| `doc`                | `String` | 作为字符串的 Tiptap JSON 文档  | `N/A`       |
| `exportType`         | `string` | 预期的导出类型                | `blob`      |
| `styleOverrides`     | `Object` | 样式覆盖                   | `{}`        |
| `pageSize`           | `Object` | 页面尺寸配置                 | `undefined` |
| `pageMargins`        | `Object` | 页面边距配置                 | `undefined` |
| `headers`            | `Object` | 页眉配置                   | `undefined` |
| `footers`            | `Object` | 页脚配置                   | `undefined` |
| `tableOverrides`     | `Object` | 传递给 DOCX 步骤的表格级渲染覆盖    | `undefined` |
| `paragraphOverrides` | `Object` | 传递给 DOCX 步骤的段落级渲染覆盖    | `undefined` |
| `textRunOverrides`   | `Object` | 传递给 DOCX 步骤的文本运行级渲染覆盖  | `undefined` |
| `tableCellOverrides` | `Object` | 传递给 DOCX 步骤的表格单元格级渲染覆盖 | `undefined` |
| `imageOverrides`     | `Object` | 传递给 DOCX 步骤的图像渲染覆盖     | `undefined` |

#### 页面尺寸配置

`pageSize` 对象允许您自定义导出 DOC 文档的页面尺寸：

| 属性       | 类型       | 描述                                    | 默认值        |
| -------- | -------- | ------------------------------------- | ---------- |
| `width`  | `string` | 页面宽度。必须是正数且后跟有效单位（cm、in、pt、pc、mm、px）。 | `"21.0cm"` |
| `height` | `string` | 页面高度。必须是正数且后跟有效单位（cm、in、pt、pc、mm、px）。 | `"29.7cm"` |

#### 页面边距配置

`pageMargins` 对象允许您自定义导出 DOC 文档的页面边距：

| 属性       | 类型       | 描述                                           | 默认值       |
| -------- | -------- | -------------------------------------------- | --------- |
| `top`    | `string` | 页面顶部边距。可为负数。必须是数字且后跟有效单位（cm、in、pt、pc、mm、px）。 | `"1.0cm"` |
| `bottom` | `string` | 页面底部边距。可为负数。必须是数字且后跟有效单位（cm、in、pt、pc、mm、px）。 | `"1.0cm"` |
| `left`   | `string` | 页面左侧边距。必须是正数且后跟有效单位（cm、in、pt、pc、mm、px）。      | `"1.0cm"` |
| `right`  | `string` | 页面右侧边距。必须是正数且后跟有效单位（cm、in、pt、pc、mm、px）。      | `"1.0cm"` |

#### 页眉配置

`headers` 对象允许您自定义导出 DOC 文档的页眉：

| 属性                   | 类型        | 描述                                                                                   |
| -------------------- | --------- | ------------------------------------------------------------------------------------ |
| `evenAndOddHeaders`  | `boolean` | 是否为奇数页和偶数页使用不同的页眉                                                                    |
| `differentFirstPage` | `boolean` | 是否首页使用不同的页眉。若为 `true`，则首页使用 `first` 值，非首页使用 `default` 值。                             |
| `default`            | `string`  | 每页的默认页眉，或开启 `evenAndOddHeaders` 时奇数页使用的页眉。支持纯文本字符串或字符串化的 Tiptap JSONContent 以实现丰富格式。 |
| `first`              | `string`  | 首页页眉，仅当 `differentFirstPage` 为 `true` 时使用。支持纯文本字符串或字符串化的 Tiptap JSONContent。         |
| `even`               | `string`  | 偶数页页眉，仅当开启 `evenAndOddHeaders` 时使用。支持纯文本字符串或字符串化的 Tiptap JSONContent。                |

> **纯文本 vs. Tiptap JSONContent:**
>
> 每个页眉值可以是**纯文本字符串**（生成简单无样式的页眉）或**字符串化的 Tiptap JSONContent** 对象（支持加粗、斜体、链接等丰富格式）。传递 JSONContent 时，请先用 `JSON.stringify()` 序列化对象，再放入请求体中。

#### 页脚配置

`footers` 对象允许您自定义导出 DOC 文档的页脚：

| 属性                   | 类型        | 描述                                                                                   |
| -------------------- | --------- | ------------------------------------------------------------------------------------ |
| `evenAndOddFooters`  | `boolean` | 是否为奇数页和偶数页使用不同的页脚                                                                    |
| `differentFirstPage` | `boolean` | 是否首页使用不同的页脚。若为 `true`，则首页使用 `first` 值，非首页使用 `default` 值。                             |
| `default`            | `string`  | 每页的默认页脚，或开启 `evenAndOddFooters` 时奇数页使用的页脚。支持纯文本字符串或字符串化的 Tiptap JSONContent 以实现丰富格式。 |
| `first`              | `string`  | 首页页脚，仅当 `differentFirstPage` 为 `true` 时使用。支持纯文本字符串或字符串化的 Tiptap JSONContent。         |
| `even`               | `string`  | 偶数页页脚，仅当开启 `evenAndOddFooters` 时使用。支持纯文本字符串或字符串化的 Tiptap JSONContent。                |

> **纯文本 vs. Tiptap JSONContent:**
>
> 每个页脚值可以是**纯文本字符串**（生成简单无样式的页脚）或**字符串化的 Tiptap JSONContent** 对象（支持加粗、斜体、链接等丰富格式）。传递 JSONContent 时，请先用 `JSON.stringify()` 序列化对象，再放入请求体中。

### 元素覆盖

DOC 生成会经过 DOCX 管线，因此在发送 Tiptap JSON 时，`/export/docx` 支持的那五种相同元素覆盖也同样适用于这里。通过 `docxFile` 上传预先生成的 DOCX 时，它们**不会生效**。

#### 结合多个元素覆盖的 cURL 示例

```bash
curl --output document.doc -X POST "https://api.tiptap.dev/v2/convert/export/doc" \
    -H "Authorization: Bearer YOUR_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
      "doc": "{\"type\":\"doc\",\"content\":[{\"type\":\"paragraph\",\"content\":[{\"type\":\"text\",\"text\":\"DOC with element-level overrides\"}]}]}",
      "paragraphOverrides": {
        "spacing": { "before": 200, "after": 200 }
      },
      "textRunOverrides": {
        "font": "Arial",
        "size": 24
      }
    }'
```

### 自定义页面布局示例

```bash
curl --output document.doc -X POST "https://api.tiptap.dev/v2/convert/export/doc" \
    -H "Authorization: Bearer YOUR_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{
      "doc": "{\"type\":\"doc\",\"content\":[{\"type\":\"paragraph\",\"content\":[{\"type\":\"text\",\"text\":\"Hello World\"}]}]}",
      "pageSize": {
        "width": "210mm",
        "height": "297mm"
      },
      "pageMargins": {
        "top": "20mm",
        "bottom": "20mm",
        "left": "15mm",
        "right": "15mm"
      }
    }'
```

### 响应

成功时，API 返回 DOC 文件的二进制下载：

- **状态**：`200 OK`
- **Content-Type**：`application/msword`
- **Content-Disposition**：`attachment; filename=export-{timestamp}.doc`

### 错误响应

| 状态码 | 代码                              | 描述           |
| --- | ------------------------------- | ------------ |
| 400 | `NO_DOCUMENT_PROVIDED`          | 请求体中未提供文档    |
| 422 | `FAILED_TO_PARSE_DOCX_FILE`     | 解析 JSON 输入失败 |
| 422 | `FAILED_TO_EXPORT_DOC_FILE`     | 导出中间格式失败     |
| 422 | `FAILED_TO_CONVERT_DOCX_TO_DOC` | 转换为 DOC 失败   |
