背景
当前公测版需要补齐 Word 中文本方向相关能力,覆盖中文竖排、表格单元格文字方向、文本框/形状文字方向,以及阿拉伯语/希伯来语等 RTL 场景。该能力会直接影响合同、表格、票据、封面、版式文档和中日韩竖排文档的兼容性。
目标
完整实现 DOCX 中 Word 文本方向的读取、渲染、编辑、保存和 API 控制能力,并保证保存后的文档可在 Microsoft Word / WPS 中保持方向设置。
功能范围
1. DOCX / OOXML 解析与保存
- 解析并保留段落、表格单元格、文本框/形状、节或页面相关的文本方向设置。
- 支持常见 WordprocessingML text direction 值,例如 horizontal、vertical、rotated、stacked、RTL/LTR 等对应语义。
- 支持段落双向属性、run 级 RTL 属性、列表/编号在 RTL 下的布局和保存。
- 保存时写回相同语义,避免打开再保存后方向丢失。
- 未识别值要保守保留,不能破坏原始文档。
2. 渲染
- 支持普通横排 LTR。
- 支持 RTL 段落方向与文本流。
- 支持中文/日文/韩文竖排文本方向。
- 支持表格单元格内文字方向:横排、竖排、旋转 90/270、堆叠文本。
- 支持文本框/形状内文字方向。
- 混排场景需要处理数字、英文、标点、括号、链接、字段文本、上标/下标。
- 光标、选区、高亮、批注/修订标记不能明显错位。
3. 编辑交互
- 在不同文本方向下可正常输入、删除、换行、选择、复制粘贴。
- IME 中文输入在竖排/横排下都可用。
- RTL 段落中方向键、Home/End、选区扩展行为符合常见编辑器预期。
- 表格单元格切换文字方向后,布局、行高、列宽和分页刷新正确。
4. UI / Ribbon
- 在 ribbon 或上下文菜单提供“文本方向”入口。
- 对表格单元格、段落、文本框选择时显示合适的可用选项。
- 选项建议包含:横排、竖排、旋转 90°、旋转 270°、堆叠、从右到左、从左到右。
- 当前选区方向状态要能正确回显。
5. API
建议新增或完善命令接口:
await editor.exec("textDirection", "horizontal");
await editor.exec("textDirection", "vertical-rl");
await editor.exec("textDirection", "rotate-90");
await editor.exec("textDirection", "rotate-270");
await editor.exec("paragraphDirection", "rtl");
await editor.exec("paragraphDirection", "ltr");
并在 getRuntimeStatus() 或 selection state 中暴露当前方向状态,方便宿主应用自定义工具栏。
建议测试样例
需要新增/收集以下 DOCX 样例:
- 纯中文竖排段落。
- 竖排中文 + 英文 + 数字 + 标点混排。
- 表格单元格中横排、竖排、旋转 90、旋转 270 混合。
- 文本框/形状中的竖排和旋转文字。
- 阿拉伯语/希伯来语 RTL 段落。
- RTL + LTR 混排段落。
- RTL 列表编号/项目符号。
- 含批注、修订、超链接、字段的文本方向样例。
验收标准
- 打开上述样例时,视觉方向与 Microsoft Word 基本一致。
- 编辑后保存,重新用 Microsoft Word / WPS 打开,文本方向不丢失。
- 在本地 WASM 公测版中加载样例没有控制台错误。
- 方向切换命令可通过 UI 和 API 触发。
- 保存前后 XML 中相关方向语义稳定,不出现无关样式破坏。
- 浏览器 smoke 覆盖 LTR、RTL、竖排、表格单元格方向至少四类场景。
备注
该 Issue 属于 DOCX 兼容性和编辑体验基础能力,优先级建议较高。实现时可以分阶段推进:先解析/渲染和保存保真,再补编辑交互与 ribbon/API 完整控制。
背景
当前公测版需要补齐 Word 中文本方向相关能力,覆盖中文竖排、表格单元格文字方向、文本框/形状文字方向,以及阿拉伯语/希伯来语等 RTL 场景。该能力会直接影响合同、表格、票据、封面、版式文档和中日韩竖排文档的兼容性。
目标
完整实现 DOCX 中 Word 文本方向的读取、渲染、编辑、保存和 API 控制能力,并保证保存后的文档可在 Microsoft Word / WPS 中保持方向设置。
功能范围
1. DOCX / OOXML 解析与保存
2. 渲染
3. 编辑交互
4. UI / Ribbon
5. API
建议新增或完善命令接口:
并在
getRuntimeStatus()或 selection state 中暴露当前方向状态,方便宿主应用自定义工具栏。建议测试样例
需要新增/收集以下 DOCX 样例:
验收标准
备注
该 Issue 属于 DOCX 兼容性和编辑体验基础能力,优先级建议较高。实现时可以分阶段推进:先解析/渲染和保存保真,再补编辑交互与 ribbon/API 完整控制。