Custom page layouts in DOC
The DOC 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.
Consider using DOCX instead
The DOC format is a legacy format from Microsoft Word 97-2003. For modern use, we recommend exporting to DOCX instead. Use DOC only when compatibility with older systems requires it.
Page size configuration
Use the pageSize option to define custom page dimensions for your exported DOC 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 { ExportDoc } from '@tiptap-pro/extension-export-doc'
ExportDoc.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 { ExportDoc } from '@tiptap-pro/extension-export-doc'
ExportDoc.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 DOC Export extension:
import { ExportDoc } from '@tiptap-pro/extension-export-doc'
const editor = new Editor({
extensions: [
// Other extensions...
ExportDoc.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()
.exportDoc({
onCompleteExport(result) {
const url = URL.createObjectURL(result)
const a = document.createElement('a')
a.href = url
a.download = 'custom-layout.doc'
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:
ExportDoc.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.