---
title: "Page breaks in DOCX import"
description: "Learn how to preserve page breaks when importing DOCX files into your Tiptap editor using the PageBreak extension."
canonical_url: "https://tiptap.dev/docs/conversion/import/docx/page-breaks"
---

# Page breaks in DOCX import

Learn how to preserve page breaks when importing DOCX files into your Tiptap editor using the PageBreak extension.

- **1. Activate trial or subscribe**

  Start a [free trial](https://cloud.tiptap.dev/v2?trial=true) or [subscribe to the Start plan](https://cloud.tiptap.dev/v2/billing) in your account.
- **2. Install from private registry**

  To install this frontend extensions, authenticate to Tiptap's private npm registry by following the [setup guide](https://tiptap.dev/docs/guides/pro-extensions.md).

When importing `.docx` files that contain page breaks, the conversion service emits `pageBreak` nodes in the Tiptap JSON output. To render and interact with these page breaks in your editor, register the `@tiptap-pro/extension-pagebreak` extension.

> **Interactive demo:** [PageBreak](https://embed-pro.tiptap.dev/preview/Extensions/PageBreak)

## Install the PageBreak extension

```bash
npm install @tiptap-pro/extension-pagebreak
```

## Set up your editor

Register the PageBreak extension alongside the Import extension. No additional configuration is needed for page break support during import.

```ts
import { Editor } from '@tiptap/core'
import { ConvertKit } from '@tiptap-pro/extension-convert-kit'
import { ImportDocx } from '@tiptap-pro/extension-import-docx'
import { PageBreak } from '@tiptap-pro/extension-pagebreak'

const editor = new Editor({
  extensions: [
    ConvertKit,
    PageBreak,
    ImportDocx.configure({
      appId: 'your-app-id',
      token: 'your-jwt',
      imageUploadConfig: {
        url: 'https://your-image-upload-endpoint.com',
      },
    }),
  ],
})
```

When you import a `.docx` file, any page breaks in the document are preserved as `pageBreak` nodes in the editor.

```ts
editor.chain().focus().importDocx({ file }).run()
```

## How it works

1. The conversion service detects page break elements (`<w:br w:type="page"/>`) in the `.docx` file.
2. Each page break is emitted as a `{ type: "pageBreak" }` node in the Tiptap JSON output.
3. The PageBreak extension renders these nodes as visual dashed dividers with a centered "Page break" label.

> **Without the PageBreak extension:**
>
> If the PageBreak extension is not registered, imported `pageBreak` nodes require a [custom extension](https://tiptap.dev/docs/editor/extensions/custom-extensions/extend-existing.md) to render. Without one, the editor schema does not recognize the node type. See the [invalid schema guide](https://tiptap.dev/docs/guides/invalid-schema.md) for strategies.

## Learn more

- [PageBreak extension reference](https://tiptap.dev/docs/pages/core-concepts/page-break-node.md) for full options, commands, and keyboard shortcuts
- [DOCX import guide](https://tiptap.dev/docs/conversion/import/docx/editor-extension.md) for general import setup
- [Page breaks in DOCX export](https://tiptap.dev/docs/conversion/export/docx/page-breaks.md) for export support
