页面结构

Beta

页面结构涵盖控制内容如何跨页面流动的元素:分页符、节、页面大小、页边距和页码。分页符可在管道中完整往返。其他页面结构属性仅部分支持。

你需要了解的内容

  • 扩展: @tiptap-pro/extension-pagebreak(不在 StarterKit 中)以及用于分页布局的 Pages
  • 导出选项: 导出扩展或 REST API 上的 pageSizepageMargins
  • 集成路径: 通过 编辑器扩展REST API 导入与导出都以相同方式工作。两种导出路径都接受 pageSizepageMargins

支持概览

功能导入编辑器导出
分页符支持支持(PageBreak)支持
页面大小不支持支持(Pages支持(可配置)
页边距不支持支持(Pages)支持(可配置)
部分支持(会提取并应用列配置)不支持仅单个节
页码不支持支持(通过页眉/页脚)通过页眉/页脚内容
导入时支持(会创建 columns/column 节点)不支持不支持

分页符

分页符可在管道中完整往返。详见专门的分页符页面。

页面大小和页边距

DOCX 中的页面大小和页边距不会被导入。解析器会从节属性中读取它们,但 Tiptap 渲染器会丢弃这些信息。

Pages 扩展提供带可配置页面大小和页边距的分页布局。配置详情请参见页面格式指南

导出扩展接受 pageSizepageMargins 选项:

ExportDocx.configure({
  pageSize: {
    width: '21.0cm',
    height: '29.7cm',
  },
  pageMargins: {
    top: '2.54cm',
    bottom: '2.54cm',
    left: '3.17cm',
    right: '3.17cm',
  },
})

这些值支持 CSS 风格单位:cminptpcmmpx。默认值会生成带标准 Word 页边距的 A4 页面。

Pages 与导出之间不会自动同步

导出扩展不会自动从 Pages 扩展读取页面大小或页边距。如果你的编辑器使用自定义页面格式,请在导出配置中传入匹配的值。

Word 文档可以有多个节,每个节都有自己的页面布局属性(大小、方向、页边距、栏、页眉/页脚)。转换管道对节的支持是部分的:

  • 导入: 节边界用于检测多栏布局。多栏节会被包装为 columns/column Tiptap 节点。其他节级属性(大小、方向、页边距)会被解析,但不会应用。
  • 编辑器: Tiptap 没有节的概念,但栏节点可以原生渲染。
  • 导出: 生成单个节。无法创建纵向/横向混排或多节文档。

页码

Word 中的页码是位于页眉和页脚中的域代码(PAGENUMPAGES)。虽然页眉和页脚会被导入(见页眉和页脚),但页码字段不会被转换,因为导入管道不会解析 DOCX 域代码。

Pages 扩展支持在页眉和页脚内容中使用页码占位符({page}{total})。

可往返内容

功能可往返?说明
分页符需要 @tiptap-pro/extension-pagebreak
页面大小编辑器(Pages)和导出需分别配置
页边距编辑器(Pages)和导出需分别配置
部分栏配置会保留;其他节属性不会
页码通过 Pages 扩展的页眉/页脚重新添加
部分导入会创建栏节点;导出尚不会将其写回