DOCX

Page Layout

Configure page size, orientation, margins, columns, and section breaks

Control document layout through section properties. Each document can have multiple sections with different layouts.

Page Size and Orientation

{
  "sections": [
    {
      "properties": {
        "page": {
          "size": { "width": 11906, "height": 16838, "orientation": "portrait" },
          "margin": {
            "top": 1440,
            "bottom": 1440,
            "left": 1440,
            "right": 1440
          }
        }
      },
      "children": [{ "paragraph": { "children": ["Portrait page"] } }]
    },
    {
      "properties": {
        "page": {
          "size": { "width": 16838, "height": 11906, "orientation": "landscape" }
        }
      },
      "children": [{ "paragraph": { "children": ["Landscape page"] } }]
    }
  ]
}

Page Margins

{
  "sections": [
    {
      "properties": {
        "page": {
          "margin": {
            "top": 1440,
            "bottom": 1440,
            "left": 1440,
            "right": 1440,
            "gutter": 0,
            "header": 720,
            "footer": 720
          }
        }
      },
      "children": [{ "paragraph": { "children": ["Content with custom margins."] } }]
    }
  ]
}

Columns

Create multi-column layouts:

{
  "sections": [
    {
      "properties": {
        "page": {
          "columns": { "count": 2, "space": 708 }
        }
      },
      "children": [{ "paragraph": { "children": ["Two-column layout."] } }]
    }
  ]
}

Section Breaks

Control how sections transition:

import { generateDocument } from "@office-open/docx";

// Each section can specify its break type
{
  properties: {
    type: "continuous",    // No page break
    // type: "nextPage",   // Default — new page
    // type: "evenPage",   // Next even page
    // type: "oddPage",    // Next odd page
  },
  children: [...],
}

Page Borders

{
  "sections": [
    {
      "properties": {
        "page": {
          "borders": {
            "top": { "style": "single", "size": 6, "color": "000000", "space": 24 },
            "bottom": { "style": "single", "size": 6, "color": "000000", "space": 24 },
            "left": { "style": "single", "size": 6, "color": "000000", "space": 24 },
            "right": { "style": "single", "size": 6, "color": "000000", "space": 24 }
          }
        }
      },
      "children": [{ "paragraph": { "children": ["Page with borders."] } }]
    }
  ]
}
Copyright © 2026