Pagination engine
Key difference- Lite (free)
- —
- Pro
- Widow/orphan, table split, baseline grid
- docx v9.6.1
- No (Word calculates)

Compare
PaperJSX knows where every page breaks before the recipient sees the document — so TOCs have real page numbers and tables split correctly.
[01] Side by side
These are the DOCX capabilities that usually change the buying decision once the workflow becomes more than basic document assembly.
| Capability | Lite (free) | Pro | docx v9.6.1 |
|---|---|---|---|
| Pagination engine | — | Widow/orphan, table split, baseline grid | No (Word calculates) |
| Pre-populated TOC | — | Page numbers from paginator | Field codes (Word populates) |
| Charts in DOCX | — | PVCE charts | — No |
| HTML → DOCX | ✓ Yes | ✓ Yes | — No |
| Template system | Placeholder hydration | + 7 theme presets | patchDocument() find-and-replace |
| Comments | — | ✓ Yes | ✓ Yes |
| Content controls | — | — | ✓ Yes |
| Compliance modules | — | India GST, Brazilian DANFE | — No |
| Font subsetting | — | Yes (requires opentype.js) | — No |
[02] The pagination difference
Both libraries can insert page breaks and page-number fields. With docx, Word calculates the final layout when the file opens. With PaperJSX Pro, the pagination engine determines where content falls ahead of time, which is why page numbers and table continuation behavior can be known before the recipient opens the file.
[03] The real tradeoff
Both are credible JavaScript routes. The split is whether you want direct OOXML construction primitives or a more opinionated engine with pagination and document modules layered on top.
Pagination-aware route
Best when page-aware output, charts, template hydration, or specialized document modules matter more than low-level OOXML construction.
Low-level builder
If your team only needs basic DOCX construction and is comfortable letting Word handle final layout, docx provides a mature builder.
The page numbers are already populated before Word opens the file. That is what a pagination engine gives you.