The EPUB Export extension supports custom page sizes and margins, allowing you to create documents with precise layouts that match your requirements. Whether you need A5 pages, custom paper sizes, or specific margin configurations, you can configure these settings directly in the extension.

Page size configuration

Use the pageSize option to define custom page dimensions for your exported EPUB files. The page size configuration accepts width and height values with various measurement units.

Supported units

All page size and margin measurements support the following units:

Unit Description
cm Centimeters (default)
in Inches
pt Points
pc Picas
mm Millimeters
px Pixels

Configuration options

Property Type Description Default
width string The width of the page. Must be a positive number followed by a valid unit (cm, in, pt, pc, mm, px). "21cm"
height string The height of the page. Must be a positive number followed by a valid unit (cm, in, pt, pc, mm, px). "29.7cm"
import { ExportEpub } from '@tiptap-pro/extension-export-epub'

ExportEpub.configure({
  token: 'YOUR_TOKEN',
  appId: 'YOUR_APP_ID',
  pageSize: {
    width: '14.8cm',    // A5 width
    height: '21cm',     // A5 height
  },
})

Page margins configuration

The pageMargins option allows you to set custom margins for all sides of your document pages. Unlike page sizes, top and bottom margins can accept negative values.

Configuration options

Property Type Description Default
top string The top margin of the page. Can be negative. Must be a number followed by a valid unit (cm, in, pt, pc, mm, px). "1cm"
bottom string The bottom margin of the page. Can be negative. Must be a number followed by a valid unit (cm, in, pt, pc, mm, px). "1cm"
left string The left margin of the page. Must be a positive number followed by a valid unit (cm, in, pt, pc, mm, px). "1cm"
right string The right margin of the page. Must be a positive number followed by a valid unit (cm, in, pt, pc, mm, px). "1cm"
import { ExportEpub } from '@tiptap-pro/extension-export-epub'

ExportEpub.configure({
  token: 'YOUR_TOKEN',
  appId: 'YOUR_APP_ID',
  pageMargins: {
    top: '2cm',
    bottom: '2cm',
    left: '1.5cm',
    right: '1.5cm',
  },
})

Complete example

Here's a complete example showing how to configure custom page layouts with the EPUB Export extension:

import { ExportEpub } from '@tiptap-pro/extension-export-epub'

const editor = new Editor({
  extensions: [\
    // Other extensions...\
    ExportEpub.configure({\
      token: 'YOUR_TOKEN',\
      appId: 'YOUR_APP_ID',\
      // A5 page size\
      pageSize: {\
        width: '14.8cm',\
        height: '21cm',\
      },\
      // Custom margins\
      pageMargins: {\
        top: '2cm',\
        bottom: '2cm',\
        left: '2cm',\
        right: '2cm',\
      },\
    }),\
    // Other extensions...\
  ],
})

// Export with custom layout
editor
  .chain()
  .exportEpub({
    onCompleteExport(result) {
      const url = URL.createObjectURL(result)
      const a = document.createElement('a')

a.href = url
      a.download = 'custom-layout.epub'
      a.click()

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

Common page sizes

Here are some common page sizes you can use as reference:

Format Width Height
A4 21cm 29.7cm
A5 14.8cm 21cm
Letter 8.5in 11in
Legal 8.5in 14in
Tabloid 11in 17in

Different measurement units

You can mix and match different units based on your preference:

ExportEpub.configure({
  token: 'YOUR_TOKEN',
  appId: 'YOUR_APP_ID',
  // US Letter size in inches
  pageSize: {
    width: '8.5in',
    height: '11in',
  },
  // Margins in different units
  pageMargins: {
    top: '0.75in',    // Inches
    bottom: '72pt',   // Points (1 inch = 72 points)
    left: '2cm',      // Centimeters
    right: '20mm',    // Millimeters
  },
})

Unit consistency

While you can mix different units, it's generally recommended to use consistent units throughout your configuration for better maintainability and clarity.