使用页眉和页脚扩展您的 DOC 导出功能

Available in Start planBetav0.6.1

考虑改用 DOCX

DOC 格式是 Microsoft Word 97-2003 的传统格式。对于现代用途,我们建议导出为 DOCX。仅在需要兼容旧系统时才使用 DOC。

@tiptap-pro/extension-export-doc 扩展在导出文档时原生支持自定义页眉和页脚。你可以为首页、奇数页和偶数页配置不同的页眉和页脚。

页眉配置

headers 对象允许你自定义导出的 DOC 文档页眉:

PropertyTypeDescription
evenAndOddHeadersboolean是否为奇数页和偶数页使用不同的页眉
differentFirstPageboolean首页是否使用不同的页眉。当为 true 时,首页使用 first 的值而不是 default
defaultstring默认页眉,应用于所有页面,或在启用 evenAndOddHeaders 时应用于奇数页。支持纯文本字符串或序列化的 Tiptap JSONContent,用于富文本格式。
firststring首页页眉,仅在 differentFirstPagetrue 时生效。支持纯文本字符串或序列化的 Tiptap JSONContent。
evenstring启用 evenAndOddHeaders 时用于偶数页的页眉。支持纯文本字符串或序列化的 Tiptap JSONContent。

纯文本会生成简单、无样式的页眉。使用序列化的 Tiptap JSONContent(通过 JSON.stringify())可以保留粗体、斜体和链接等富文本格式。

页脚配置

footers 对象允许你自定义导出的 DOC 文档页脚:

PropertyTypeDescription
evenAndOddFootersboolean是否为奇数页和偶数页使用不同的页脚
differentFirstPageboolean首页是否使用不同的页脚。当为 true 时,首页使用 first 的值而不是 default
defaultstring默认页脚,应用于所有页面,或在启用 evenAndOddFooters 时应用于奇数页。支持纯文本字符串或序列化的 Tiptap JSONContent。
firststring首页页脚,仅在 differentFirstPagetrue 时生效。支持纯文本字符串或序列化的 Tiptap JSONContent。
evenstring启用 evenAndOddFooters 时用于偶数页的页脚。支持纯文本字符串或序列化的 Tiptap JSONContent。

纯文本会生成简单、无样式的页脚。使用序列化的 Tiptap JSONContent(通过 JSON.stringify())可以保留粗体、斜体和链接等富文本格式。

完整示例

import { ExportDoc } from '@tiptap-pro/extension-export-doc'

const editor = new Editor({
  extensions: [
    // 其他扩展...
    ExportDoc.configure({
      token: 'YOUR_TOKEN',
      headers: {
        evenAndOddHeaders: true,
        default: '我的文档 - 机密',
        first: '欢迎使用我的文档',
        even: '我的文档 - 偶数页',
      },
      footers: {
        evenAndOddFooters: true,
        default: '公司名称 - 保留所有权利',
        first: '草稿版本 1.0',
        even: '公司名称 - 偶数页页脚',
      },
    }),
    // 其他扩展...
  ],
})

// 导出带有页眉和页脚的文档
editor
  .chain()
  .exportDoc({
    onCompleteExport(result) {
      const url = URL.createObjectURL(result)
      const a = document.createElement('a')

      a.href = url
      a.download = 'document-with-headers.doc'
      a.click()

      URL.revokeObjectURL(url)
    },
  })
  .run()

简单页眉和页脚

如果你不需要为奇数页和偶数页设置不同的页眉,可以只提供一个 default 值:

ExportDoc.configure({
  token: 'YOUR_TOKEN',
  headers: {
    default: '我的文档标题',
  },
  footers: {
    default: '页脚 - 公司名称',
  },
})