Markdown to RTF

Nothing you choose here leaves your browser, and nothing is downloaded to make it work. An RTF is plain text with control words in it, so there is nothing to unzip and no library to fetch.

…or drop a file anywhere on this page.

Markdown into rich text, in one step.

The Markdown is read as CommonMark plus GitHub tables, turned into HTML, and written out as RTF. Headings keep their levels, lists keep their kind, links keep their addresses, and anything outside ASCII is written as a Unicode escape in the form every reader since 1997 accepts.

What RTF is, and why it needs no library

Rich Text Format is text with control words in it: \b starts bold, \par ends a paragraph, and braces group things so that formatting inside a group stays inside it. Microsoft published it in 1987 and stopped developing it in 2008, and it is still what a great deal of software exports when it wants formatted text that everything can open. Open one in a text editor and you can read it.

What makes it harder than it looks is that a lot of the file is not content — the font table, the colour table, the list definitions — and a group beginning {\*\ means “ignore this entirely if you do not understand it”. A reader that does not honour that marker prints list templates into the middle of your document. The font table, though, has to be read even though it is not content: it is the only place that says which font number is monospaced, and that is the only way code is marked in an RTF.

How it is checked, in both directions

Against pandoc, which reads RTF and writes it. So the reader here is measured against pandoc's reading of a file pandoc wrote, and the writer is measured by handing its output to pandoc and asking what pandoc reads back. That second half found two real faults that no round trip against itself could have: a Unicode escape written in a form that is legal and that pandoc misreads, and a numbered list that no reader can tell is numbered unless the file also carries a list table.

What it will not do

It will not carry pictures. RTF stores one as hex-encoded bytes of a Windows metafile or a PNG, and writing that from a web page's image would be guesswork about what the reader at the other end accepts. Each picture is named where it stood instead of being silently dropped.

It does not open .doc, which is a different thing entirely — a compound binary document rather than text — and it says so rather than producing nonsense. It does not carry tracked changes, comments or footnotes. And there is no RTF to PDF here, for the same reason there is none anywhere on this site: that is typesetting, not conversion, and something would have to choose your page size, your margins and where every break falls.

Where to go next