Skip to content

Tab-stop columns (left + right-aligned tabs) wrap/position incorrectly vs Word #13

Description

@jmcopeland

Summary

Two-column layouts built with tab stops — a left tab plus a right-aligned tab — render with incorrect wrapping/column positioning compared to Word and Word Online. This is the standard Word technique for signature blocks in contracts, so it shows up frequently in real legal documents.

Version: @extend-ai/react-docx@0.8.0

Repro

Minimal .docx (isolates the structure): https://github.com/jmcopeland/react-docx/raw/repro/tab-stop-column-wrap/repros/tab-stop-column-wrap.docx

Each paragraph declares two tab stops and jumps between them with <w:tab/> runs:

<w:tabs>
  <w:tab w:val="left"  w:pos="5760"/>   <!-- 4.0" left column -->
  <w:tab w:val="right" w:pos="9240"/>   <!-- ~6.4" (right margin), RIGHT-aligned -->
</w:tabs>

The header paragraph run sequence:

"Client A" [TAB] "Company B Legal Name LLC United States " "On behalf of itself and its affiliates" [TAB] "On behalf of itself and its affiliates"

…followed by an underline-rule row ("____" [TAB] "____") and a "Name:" [TAB] "Name:" row using the same tab stops.

Steps

  1. Open the .docx in Word / Word Online.
  2. Open the same .docx in the extend viewer (DocxEditorViewer, read-only).
  3. Compare the signature block layout.

Expected (Word)

The tab stops form two columns: the left party at the page's left margin, the right party's text in the column beginning at the 4" left tab and wrapping within that column, with the final tabbed segment right-aligned at the right tab (~right margin). The underline rule and Name: row align to the same two columns.

Actual (extend)

The tabbed content wraps/positions incorrectly — the right column's text breaks at the wrong width and the columns don't line up with Word's layout. (Observed in a real, sanitized McKinsey-form contract: Word Online renders the signature block correctly; the extend renderer wraps it wrongly. The minimal .docx above reproduces the same tab-stop structure.)

Notes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions