Skip to content
lit-docx
Developer docs
Preview · unreleased
Getting startedView Markdown ↗

Support matrix

How each Word feature is supported for reading (parseDocx) and for generating (generateDocx).

"Read" means parseDocx turns it into meaningful nodes; "Generate" means generateDocx can write it from nodes. "Written back verbatim" means the content survives into the output file but cannot be created or changed through LitAST.

FeatureReadGenerate
Paragraphs: alignment, spacing, indentation, tab stops✅✅
Text formatting: bold, italic, underline, strikethrough, super/subscript, size, color, font, highlight✅✅
Headings, quotes, code blocks, horizontal rules✅✅
Lists and multilevel numbering✅✅ numbering definitions generated automatically
Tables: merged cells, column widths, shading, borders, header rows✅✅
Images: inline, floating, cropping, hyperlinks✅✅
Text boxes and shapes✅Written back verbatim
Sections, page setup, headers and footers (including first and even pages)✅✅
Fields: page numbers, dates, tables of contents, complex fields✅✅
Content controls: text, checkbox, date, drop-down, repeating sections, data binding, picture✅✅
Comments and replies✅✅
Tracked changes: insertions, deletions, formatting, moves✅✅
Footnotes and endnotes✅✅
Bookmarks, editing permission ranges, page and column breaks✅✅
Document properties and variables✅✅
Document protection✅✅
Equations (OMML)Kept verbatimWritten back verbatim
ChartsKept verbatimWritten back verbatim; cannot be created
Watermarks✅Written back verbatim
Style definitionsUsed to compute formatting; original part keptWritten back verbatim; new styles cannot be created through LitAST
Phonetic guides (ruby)✅ Base text, annotation and properties✅ Create, edit and write back; see the example

Known limitations

  • Phonetic guides do not infer pronunciation. Both text layers and their formatting, six alignment values, sizes, raise, language and dirty are supported. Complete lifecycles for nested fields, comments and revisions have not been verified. Content outside the ruby content model is rejected on export instead of silently discarded.
  • generateDocx rebuilds the whole package from LitAST; building blocks (glossary) and custom XML parts are not written back. See Round trips and preservation.
  • Encrypted DOCX files and legacy .doc files cannot be read and throw DocxPackageError.
  • No layout or rendering: lit-docx handles file structure only; it does not paginate or draw documents.
lit-docx · QuireKitA DOCX parser and generator, licensed under AGPL-3.0 with a commercial option.