Drop a Word document. See everything in it.
safe · secure · no server · works offline · fast
…or paste a file you copied in Finder, or just start typing at the cursor.
↓ scroll for about & FAQsafe · secure · no server · works offline · fast
…or paste a file you copied in Finder, or just start typing at the cursor.
↓ scroll for about & FAQOmniViewer opens a Microsoft Word document right in your browser. Drop the file and you get the document rendered — headings, lists, tables, pictures and links — plus its text, its outline, its metadata, and the parts of the package underneath. There is no upload and no server: the file is read by your own browser, and the parsing runs in a background Web Worker so the page never freezes.
It is also the fastest way to answer a question Word makes surprisingly hard:
what does this document still remember? A .docx you were
sent can carry the sentence someone cut, the name of who cut it, the comment
thread they thought was resolved, and text marked hidden that is stored in
full. The Revisions tab lays all of it out, and offers you a
cleaned copy with it removed.
Heading N style, an explicit outline level, or a house style that inherits from one through w:basedOn — and all three are resolved here, which is why documents built from a corporate template still produce an outline.docProps: title, subject, author, last modified by, revision number, total editing time in minutes, company, manager, template and any custom properties your organisation stamps on.word/media/, each decompressed from its own byte range and downloadable at full resolution.
Track Changes does not overwrite text; it wraps it. A deletion becomes a
<w:del> element whose words are still there, tagged with an
author and a timestamp. An insertion becomes <w:ins>.
Accepting the changes in Word removes them properly — but only if
somebody actually did it, and a document circulated for review usually has
not. Hidden text is the same story: <w:vanish/> is a display
instruction, and the words it hides are stored as ordinary text.
This is the mechanism behind the redlined‑contract and edited‑press‑release stories that surface every few years. The Revisions tab reports every insertion, deletion and move with its author and date, every comment with its thread, every hidden run, and a table of who edited what. Then Download cleaned .docx rebuilds the package from scratch: changes accepted, comments and the people list dropped, hidden runs removed, author and company metadata cleared, and the revision‑session identifiers that fingerprint an editing history stripped out. Because the package is written anew rather than patched, the removed text is not present anywhere in the file you download.
A .docx is a ZIP of XML parts, and the body of the document lives
in one of them: word/document.xml. OmniViewer reads the ZIP’s
index from the tail of the file, seeks to that one part, and streams it —
cutting it at </w:p>, the closing tag of a paragraph, which
XML guarantees cannot appear inside text or an attribute. Each paragraph is
parsed on its own and released, so memory tracks the size of the longest
paragraph rather than the size of the document. The outline, the revision
audit and the statistics are counted over every paragraph as it streams. Our
walk through the WordprocessingML format
shows the structure, the tracked‑change markup and the streaming code, and
the identifier Word stamps on every paragraph
digs into w:rsid — the per‑editing‑session value that can
link two documents to a common ancestor, with real hex.
OmniViewer opens every file format. A
.docx is a ZIP underneath, so the
ZIP toolkit can still show you the
container view; the same viewing engine powers
fastjsonviewer.com and
hugecsv.com.
No. OmniViewer is a static page with no server-side processing: the .docx is read directly by your browser, and every tab — document, revisions, conversions, metadata and hex — runs locally in a Web Worker. The document never leaves your computer, and neither does the cleaned copy you download.
Yes. The Revisions tab lists every tracked insertion, deletion and move with the author name and timestamp Word recorded against it, and the Document tab has a Markup view that shows insertions underlined and deletions struck through in place. You can also read the document as Original — what it said before the edits — which is the reading most online viewers cannot produce at all.
Open the file and use Download cleaned .docx on the Revisions tab. It accepts every tracked change, deletes the comment threads and the people list behind them, removes hidden text, clears the author, company, manager and editing-time metadata, and strips the revision-session identifiers Word uses to fingerprint an editing history. The package is rebuilt from scratch rather than patched, so the removed text is not recoverable from the downloaded file.
Yes. It is a valid Office Open XML package: the same parts, the same relationships and the same content types, minus the ones that only carried review data. Formatting, styles, numbering, tables and pictures are untouched — the only things missing are the tracked changes, comments, hidden text and identifying metadata.
Yes. Text formatted as hidden carries a w:vanish flag, which tells Word not to display or print it — but the words themselves are stored as ordinary text and travel with the file. The Revisions tab lists every hidden run, and the Document tab has a "show hidden text" toggle that reveals them in place.
Effectively unlimited. The package index is read from the tail of the file, only the document part is decompressed, and that part is streamed and cut at paragraph boundaries rather than loaded into memory. Peak memory tracks the longest single paragraph, not the length of the document. The rendering and conversion tabs show a bounded window of a very long document and say so; the outline, revision audit and statistics count every paragraph in the file.
Yes, on the Markdown tab, with a toggle for standalone HTML. Headings are taken from the document heading level rather than guessed from font size, ordered lists stay ordered and bulleted lists stay bulleted at their nesting level, monospaced runs become code spans, hyperlinks are preserved, and tables become GitHub-flavoured pipe tables. Deleted text is left out and inserted text is kept, so the Markdown matches the document as it stands.
The counts stored in docProps/app.xml are a snapshot Word wrote at some past save, not a live figure — they go stale as soon as the document is edited by anything that does not refresh them. OmniViewer counts the words actually present in the document text. When the two disagree the Metadata tab says so, because the gap is itself a hint about how the file was last edited.
It opens .docm, .dotx and .dotm — the macro-enabled and template variants use the same WordprocessingML part graph, so every tab works on them. The old binary .doc format (Word 97–2003) is a completely different format and is not supported; it opens in the universal raw and hex views instead.
It is a ZIP archive of XML parts, called an OPC package. word/document.xml holds the body text and its formatting, word/styles.xml the style definitions, word/numbering.xml the list formats, word/comments.xml the comment threads, word/media/ the pictures, and docProps/ the metadata. Relationship files wire them together, and [Content_Types].xml declares what each part is. The Parts tab shows all of it and lets you read any part.