Repository navigation
v9.6.2 - Compatibility Mode Support
What's New in v9.6.2
Compatibility Mode Support (Phases 1-3)
Detect and upgrade Word compatibility modes. Equivalent to clicking File > Info > Convert in Microsoft Word.
getCompatibilityMode()- Returns Word version mode (11/12/14/15)isCompatibilityMode()- Check if document targets a legacy Word versiongetCompatibilityInfo()- Full parsed compat settings including legacy flags and modern entriesupgradeToModernFormat()- Upgrade to Word 2013+ mode, removes legacy flags, adds modern settings
Settings.xml is now preserved during round-trip processing with schema-aware merge on save. Documents are no longer silently upgraded to mode 15.
Preserved Element Types
New element types for round-trip fidelity:
AlternateContent- mc:AlternateContent blocks (Word 2010+ shapes/VML fallback)MathParagraph/MathExpression- Math equations (m:oMathPara, m:oMath)CustomXmlBlock- Custom XML data (w:customXml)PreservedElement- Generic preserved elements (w:proofErr, w:permStart, w:permEnd, w:altChunk, w:ruby)
Corruption Fixes
- Auto-generation of mc:Ignorable attribute prevents Word "unreadable content" errors
- Orphaned numId references, missing people.xml authors, and pPrChange attribute ordering fixed
- 15 regression tests added
Enhanced Element Parsing
- 14 new Run content types (symbols, position tabs, embedded objects, date fields)
- 6 new Run formatting properties (complex script, multi-font support)
- 40+ page number formats per ECMA-376
- Table band size, row width/spacing, section footnote/endnote properties
- formatDateForXml() utility for OOXML date compliance
Breaking Changes
- Document.normalizeTableLists() removed (moved to consumer applications)
- BaseManager abstract class removed (no external API impact)
- Unused all and tailwindcss dependencies removed
Stats
- 2260+ tests passing across 99 test suites
- 118 source files, 73,500+ lines of code
See CHANGELOG.md for full details.