Search DevTools

Jump to any tool or page

Document to Markdown

Convert Word (.docx, .doc), Excel (.xlsx, .csv), PowerPoint (.pptx), OpenDocument, RTF, EPUB, and PDF documents into clean Markdown. 100% private, browser-executed.

Document

no file yet

Drop document here or click to browse

DOCX, DOC, PPTX, XLSX, ODT, RTF, EPUB, CSV, PDF (up to 50 MB)

Auto-detect reads internal container signatures. Override if parsing an unusual file.

Markdown

Choose or drop a Word, Excel, PowerPoint, EPUB, or PDF document, or paste a link to extract clean Markdown.

Data Transformation

About Document to Markdown

Convert Word documents, PDFs, and HTML into clean Markdown suitable for version control, static sites, or model context. The conversion is inherently lossy in one direction that surprises people: Word encodes appearance, Markdown encodes structure, so a heading that was merely styled bold and large rather than marked as Heading 1 has nothing for the converter to recognise.

Frequently asked questions

Why did my headings convert to plain bold text?
Because they were never headings. Word distinguishes a paragraph with the Heading 1 style applied from a Normal paragraph that someone made 18pt and bold, and only the former carries semantic meaning in the file. Converters read styles, not appearance, so direct formatting produces bold body text with no document outline. The fix is upstream: apply real heading styles in the source document. Once converted, restoring the hierarchy means inferring it from font sizes, which is guesswork.
How are tables handled when they contain merged cells or block content?
GitHub-flavoured Markdown tables are strictly rectangular: every row has the same number of pipe-delimited cells, and each cell holds inline content only. Merged cells have no representation whatsoever, so they are either duplicated across the span or collapsed, and either choice misstates the original. A cell containing a bulleted list or multiple paragraphs cannot be expressed either, since a newline ends the row. Complex tables are usually emitted as raw HTML instead, which most Markdown renderers accept.
What happens to embedded images, footnotes, and tracked changes?
Images live inside the .docx zip archive as separate files, so they must be extracted and rewritten as references or inlined as base64 data URIs — the latter keeps everything in one file but bloats it considerably. Footnotes have no core Markdown syntax and are commonly emitted using the extended [^1] form, which not every renderer supports. Tracked changes are the real trap: unaccepted revisions may convert as if accepted, silently promoting deleted text back into the output.
Which characters need escaping, and what breaks without it?
Word autocorrect substitutes typographic characters that survive conversion unchanged: curly quotes, em dashes, and non-breaking spaces that look identical to normal spaces but break word-wrapping and fail string comparisons. Separately, literal characters that are Markdown syntax must be escaped — underscores inside identifiers like my_var_name become italics without backslashes, and a line beginning with a number and full stop becomes an ordered list. Text containing asterisks, brackets, or hashes needs the same treatment.
Is Markdown output stable enough to diff across conversions?
Only if the converter is deterministic about line wrapping and whitespace. A converter that reflows paragraphs to a fixed column produces enormous diffs when a single word changes early in a paragraph, since every subsequent line shifts. Keeping each paragraph on one long line makes diffs precise at the cost of readability in a plain editor. If the Markdown is going into git, choose one-line-per-paragraph and configure your editor to soft-wrap instead.