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

Available in Start planBetav0.6.2

考虑改用 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首页页眉,仅在 differentFirstPage 为 true 时生效。支持纯文本字符串或序列化的 Tiptap JSONContent。
evenstring启用 evenAndOddHeaders 时用于偶数页的页眉。支持纯文本字符串或序列化的 Tiptap JSONContent。

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

页脚配置

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

PropertyTypeDescription
evenAndOddFootersboolean是否为奇数页和偶数页使用不同的页脚
differentFirstPageboolean首页是否使用不同的页脚。当为 true 时,首页使用 first 的值而不是 default。
defaultstring默认页脚,应用于所有页面,或在启用 evenAndOddFooters 时应用于奇数页。支持纯文本字符串或序列化的 Tiptap JSONContent。
firststring首页页脚,仅在 differentFirstPage 为 true 时生效。支持纯文本字符串或序列化的 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: '页脚 - 公司名称',
  },
})