支持的功能

Beta

下表展示了每种文档功能在转换流水线的三个阶段中的表现:

  1. 导入 将 DOCX 内容转换为 Tiptap JSON。
  2. 编辑器 在浏览器中渲染该 JSON。每种节点和标记类型都需要匹配的 Tiptap 扩展才能正确显示。
  3. 导出 将编辑器内容转换回 DOCX 文件。

某项功能可能在某个阶段受支持,但在另一个阶段不受支持。例如,制表符会被导入并在编辑器中渲染,但导出扩展目前还不会将其写回 DOCX。

导入和导出各自都有两种集成路径:一种是 编辑器扩展,另一种是 REST API。对于大多数功能,这两种路径会产生相同的结果。对于存在差异的地方(脚注、页眉/页脚、导出自定义),相关安装页面会说明具体细节。

编辑器列默认假设使用 ConvertKit

下表中的编辑器列默认假设推荐配置:已安装 ConvertKit 作为编辑器的扩展套件。ConvertKit 是基础功能的超集(相当于 StarterKit 的节点,加上针对 Paragraph、Heading、Image 以及表格栈的 DOCX 感知覆盖)。如果没有 ConvertKit,段落间距和缩进、图片裁剪以及表格单元格格式仍会被提取到 JSON 中,但会被编辑器的 schema 丢弃。若编辑器支持取决于其他因素(Pages、某个自定义扩展),该行会注明依赖项。

其他格式

这些表格专门描述 DOCX 流水线,因为 DOCX 是所有其他导出所基于的参考格式。PDF、ODT、EPUB 和 DOC 都是先生成一个 DOCX 文件,然后通过云服务将其转换为目标格式。凡是在 DOCX 导出中可用的功能,通常也会延续到其他格式,不过每种格式都可能引入自己的限制。详情请参见相应格式页面。

Markdown 走的是完全独立的转换路径,并支持另一组功能。相关内容记录在其单独的页面中。

内联格式

功能导入编辑器导出
粗体✓✓✓
斜体✓✓✓
下划线✓✓✓
删除线✓✓✓
下标✓✓✓
上标✓✓✓
内联代码✓✓✓
文字颜色✓✓✓
高亮✓✓✓
字体系列✓✓✓
字体大小✓✓✓
超链接✓✓✓
制表符~~✕
内部书签✓✓✓

块级元素

功能导入编辑器导出
段落✓✓✓
标题 1 到 6✓✓✓
引用块✓✓✓
代码块✕✓✕
水平线✓✓✓
手动换行✓✓✓

文本和段落样式

导入服务会从 DOCX 源中提取段落级样式属性,例如间距、缩进和行高。ConvertKit 的自定义 Paragraph 和 Heading 会自动渲染这些样式。对于文档命名样式目录(Heading 1、Normal、Quote 等)中的排版样式,请使用实验性的 CSS 注入 功能,它会将样式目录提取为带作用域的 CSS 规则。

功能导入编辑器导出
文本对齐✓✓✓
行距✓✓✓***
段落间距✓✓✓
缩进✓✓✓
与下一段保持在一起 / 保持行在一起✓✓✓
字间距✓✕*✕
段落边框✕✕✕
Word 样式~~**~

* 字母间距会被提取为 textStyle.letterSpacing,但没有内置扩展来渲染它。要渲染导入的字母间距,请扩展 TextStyle。
** 默认不会应用 Word 的命名样式排版。请使用 CSS 注入 将其提取为作用域 CSS。
*** 导出时会往返保留行距。比例值(无单位的倍数,如 1.5,或百分比,如 150%)会写入为相对行距,并随字体大小缩放;带绝对单位的固定值(24px、18pt、1cm)会写入为精确行高。em 和 rem 等与字体相关的单位则保留为文档默认值。

列表

功能导入编辑器导出
项目符号列表✓✓✓
有序列表~✓✕
有序列表编号格式~✓✕
嵌套列表✓✓✓
任务列表✕✓✕

表格

单元格级和行级属性(背景、边框、垂直对齐、行高)需要 ConvertKit 的 ConvertTableKit,该套件默认包含。若使用独立的 @tiptap/extension-table,这些属性仍会被提取到 JSON 中,但会被编辑器的 schema 丢弃。若要通过 Pages 扩展 实现分页布局,请改用 PagesTableKit;其表格扩展在内部继承了 ConvertKit 的扩展,因此相同的 DOCX 单元格属性也会继续传递。有关具体组成,请参见 表格内容参考。

功能导入编辑器导出
基础表格✓✓✓
合并单元格(colspan)✓✓✓
合并单元格(rowspan)✓✓✓
表头行✓✓✕
表格宽度✓✓✓†
列宽✓✓✓
表格边框✓✓✓
单元格背景✓✓✓
单元格边框✓✓✓
单元格垂直对齐✓✓✓
行高✓✓✓
表格级单元格边距✓✓✓

† 设置明确宽度的表格会保持固定宽度。未设置宽度的表格会保持全宽(流式)布局并随页面重新排列,而不会锁定为固定尺寸。

媒体

功能导入编辑器导出
行内图片✓✓✓
浮动图片~✕✕
图片尺寸✓✓✓
图片裁剪✓~*✕
数学和公式✕✓✓

* ConvertKit 的自定义 Image 会声明 cropTop/cropBottom/cropLeft/cropRight,并将它们作为 data-crop-* 属性输出。若要实现视觉裁剪,请添加 CSS,将这些数据属性转换为 clip-path 或 object-position。

页面布局

功能导入编辑器导出
分页符✓~✓
页眉和页脚✓*✓✓
节~✕✕
页面大小和边距✕✓✓
页码~**✓~**
脚注✓*✕✕
尾注✓*✕✕
评论✓✓✓

* 导入行为在不同集成路径中有所不同。REST API 会在响应中将脚注、尾注以及页眉/页脚作为单独字段返回。编辑器扩展 会通过 Pages 扩展自动应用页眉和页脚,但不会显示脚注或尾注数据。详情请参见安装页面。
** 页眉/页脚中的 Word PAGE 和 NUMPAGES 字段会转换为规范文本标记({page} / {numpages}):在使用 Pages 扩展时默认开启;在其他情况下可通过 placeholders 字段选择启用。其他字段代码(DATE、AUTHOR、MERGEFIELD)仍会按其缓存的显示值导入。导出时,编辑器扩展 和 REST API 都会将页眉/页脚内容中的 {page} / {total} 标记作为实时的 PAGE / NUMPAGES 字段输出。请参见页码字段。

页面布局需要 Pages 扩展

页眉、页脚、分页符以及分页布局都需要 Pages 扩展 才能在编辑器中渲染。没有它,即使转换服务生成了这些内容,也没有地方可供显示。

审阅和协作

功能导入编辑器导出
修订记录~*✓*~*

* 在 preserve 模式下,插入和删除会以建议的形式往返转换。accept 和 reject 会在导入期间直接应用或丢弃它们,因此不会有建议进入文档。编辑器渲染需要修订记录扩展。目前尚未携带某些修订类型,包括导入时的段落拆分、格式变化和移动,以及导出时图片上的格式修订和建议。在这些情况下,内容会进入文档,但变化记录不会保留。请参阅导入修订记录和导出修订记录。

不支持

这些功能在导入期间不会被转换,或者仅有限转换。

功能状态
目录作为 tableOfContents 节点导入(标题和标题范围)。需要一个自定义扩展来在编辑器中渲染它。现有的目录扩展是一个用于构建侧边栏导航的无头工具,而不是文档块渲染器。不导出。
文本框不会转换。文本框中的内容不会被提取。
形状、SmartArt、WordArt不会转换。这些元素在导入期间不会被提取。
域代码(DATE、AUTHOR、MERGEFIELD)缓存的显示值会以纯文本形式保留(例如,显示为“2026年4月10日”的 DATE 域会作为文本“2026年4月10日”导入)。域代码本身不会转换,因此该值会变为静态且不会更新。
页码域代码(PAGE、NUMPAGES)当启用 placeholders 时,会翻译为规范文本标记(PAGE 对应 {page},NUMPAGES 对应 {numpages})(Pages 扩展默认启用;也可通过 REST API 的 placeholders={} 表单字段显式启用)。Pages 扩展可原生渲染 {page};通过 Pages.configure({ placeholders: { total: 'numpages' } }) 将 {numpages} 映射后即可动态渲染。若 placeholders: false(或在 REST API 中省略),缓存的显示值会作为纯文本导入。
文档元数据(作者、标题、关键词)不会转换。元数据不包含在 JSON 输出中。
表单域和内容控件不会转换。内联结构化文档标记(SDT)的文本内容会保留,但控件元数据会被丢弃。
隐藏文本标记为隐藏的文本运行(w:vanish)会从导入输出中排除。
从右到左的文本方向导入时不会解析 DOCX <w:bidi>(段落方向)和 <w:rtl>(文本运行方向),导出时也不会写入。用阿拉伯语、希伯来语、波斯语、乌尔都语及其他 RTL 语言编写的文档会按编辑器的 CSS 方向渲染(默认 LTR)。请在编辑器根元素上设置 dir="rtl",或在应用层检测语言以处理此类情况。详见文本对齐。