Skip to main content
The SDK accepts six input formats. All of them open in the same editor with the same document model. They differ in how much of the source they preserve.
Earlier versions named this field docx. That name still works; pass one or the other.

Format detection

The SDK checks, in order:
  1. An explicit format on the document input.
  2. The filename extension, when the source is a File.
  3. The MIME type, when the source is a Blob that carries one.
  4. DOCX, as the fallback.

Set the format

A Blob or ArrayBuffer built in memory has no filename, and its MIME type may be missing or wrong. Pass format:
A source with no format, filename, or MIME type is parsed as DOCX. Any other content then fails to parse. Pass format when you build the source yourself.
The MIME types recognized for the binary formats are application/vnd.openxmlformats-officedocument.wordprocessingml.document (DOCX), application/vnd.oasis.opendocument.text (ODT), and application/rtf, text/rtf, application/x-rtf, or text/richtext (RTF).

Format details

Preserves styles, fonts, tables, images, sections, page setup, headers and footers, footnotes and endnotes, comments, and tracked changes. All of them are written back on export.
Formatting is resolved through the document’s styles and applied directly to the text: fonts, sizes, colors, highlighting, bold, italic, underline, strikethrough, superscript and subscript, small caps, and letter spacing; paragraph alignment, indents, spacing, line height, borders, shading, and page breaks. Lists keep their numbering, including start values and numbering that continues across interruptions. Tables keep merged cells, column widths, and cell shading. Images, footnotes and endnotes, running headers and footers, comments, tracked insertions and deletions, and page size and margins all come in.Floating pictures and text boxes are placed inline where they are anchored; charts and embedded objects come in as their preview image when the file carries one. Named styles are not kept as styles, only their effect.
Reads the RTF that Word (“Save as RTF”), WordPad, TextEdit, and LibreOffice write: fonts, sizes, colors, highlighting, and the full range of character formatting; paragraph alignment, indents, spacing, line spacing, borders, and shading; headings from Word’s heading styles; lists from Word’s list table and from WordPad’s older bullet markup; tables with merged cells and column widths; PNG, JPEG, and Windows metafile pictures; hyperlinks; footnotes and endnotes; headers and footers; comments; tracked changes; and page size and margins. Text in any Windows code page or East Asian encoding decodes correctly.Tables nested inside table cells are flattened into the outer cell, and multi-column sections import as a single column.
Headings, lists, and tables become the matching document blocks. Markdown has no page setup or revision marks, so the document opens with default page setup and no tracked changes.
Each block of text separated by a blank line becomes a paragraph.
Structural markup maps to document blocks. Scripts, styles, and layout CSS are ignored.

Titles

Without a title, the SDK uses the filename without its extension. Master Agreement.docx becomes “Master Agreement”.

Export

tools.export() produces a file in any of five formats:
Two modes decide what happens to pending changes:
  • "review" (default): a .docx keeps pending tracked changes and comments; the other formats show the text with changes accepted.
  • "final": every pending change is accepted and every comment dropped first — a clean copy to send out. In the editor, a final .docx is regenerated rather than grafted onto the original file, so none of its revisions or comments come back. On the server, a final .docx keeps the original file’s bytes for content the accepted changes didn’t touch.
On the server, exportDocument() from @reviseio/editor/server takes the same options for docx, html, markdown, and txt (server API). A document imported from ODT, RTF, Markdown, or HTML exports as a valid .docx. ODT and RTF are import-only.