Skip to content

feat: enable odd/even header-footer support (w:evenAndOddHeaders) #2803

@gpardhivvarma

Description

@gpardhivvarma

What

Word documents with "Different Odd & Even Pages" enabled (w:evenAndOddHeaders in word/settings.xml) render the same header/footer on every page in SuperDoc. The even/odd variants are ignored.

Root Cause

The layout engine hardcodes alternateHeaders = false at packages/layout-engine/layout-engine/src/index.ts:1287, preventing the paginator from selecting the correct header/footer variant per page. This causes incorrect margin calculations — the body content area doesn't account for different header heights on odd vs even pages.

The rest of the pipeline already supports this:

  • Import: w:evenAndOddHeaders is parsed from settings.xmlstyles.alternateHeaders
  • Layout Bridge: getHeaderFooterTypeForSection() already handles even/odd variant selection
  • Rendering: The provider pattern renders whichever variant is selected

Expected Behavior

  • Page 1 (odd): renders odd/default header
  • Page 2 (even): renders even header
  • Page 3 (odd): renders odd/default header
  • Margins adjust per page based on actual header/footer content height for each variant

Spec Reference

  • ECMA-376 §17.10 — Headers and Footers
  • w:evenAndOddHeaders element in word/settings.xml

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions